سؤال

وأنا أدعو Application.Current.Shutdown() من الفئة التي لا بد أن النوافذ XAML مع ObjectDataProvider، لكن التطبيق لا تغلق. يمكن لأي شخص أن يساعدني على فهم لماذا؟ طلبي لا تغلق تماما بعد إغلاق الإطار الرئيسي لي، فإنه لا تختفي من قائمة عملية إدارة المهمة.

هل كانت مفيدة؟

المحلول

هل إنشاء أي المواضيع للقيام معالجة الخلفية؟ إذا كان لديك، تأكد من تعيين الخاصية .IsBackground عليها، أو أنها يمكن أن تبقي على التطبيق تشغيل

نصائح أخرى

وحاول Environment.Exit(0) بدلا

لا تنس أن تضيف هذا:

private void Window_Closed(object sender, EventArgs e)
{
  Application.Current.Shutdown();
}

وآمل أن يساعد هذا.

إذا كان لديك العديد من النوافذ أو مربعات الحوار في التطبيق الخاص بك، قد تحتاج إلى إغلاق كل واحدة بشكل واضح.

والحوارات وثيقة مع:

<اقتباس فقرة>   

و_myDialog.Close ()؛

وإغلاق جميع النوافذ:

foreach(var window in Application.Current.Windows.ToList())
{
    window.Close();
}

وكان لي نفس المشكلة، وعملية التطبيق لا تتوقف على الرغم من أن تطبيق مغلقة.

في حالتي فتحت نافذة من BackgroundWorker (رمز أدناه)

BackgroundWorker BG = new BackgroundWorker();
BG.DoWork += new DoWorkEventHandler(BG_DoWork);
StockMinWindow MinWindow = new StockMinWindow(null); -------- this is the problem 
BG.RunWorkerAsync();

وinstanciate النافذة قبل تشغيل BackgroundWorker يبدو عدم المشكلة ولكن عن طريق محو خط إغلاق التطبيق بشكل صحيح

وأفتح نافذتي من BackgroundWorker ولكن باستخدام الموضوع الرئيسي (رمز أدناه)

 View.Dispatcher.BeginInvoke(new Action(delegate()
 {
   StockMinWindow MinWindow = new StockMinWindow(StockMinList);
   MinWindow.Owner = View;
   MinWindow.ShowDialog();
 }));

ونأمل أن يساعد.

وكان لي مشكلة حيث أن التطبيق لا تغلق حتى عندما تم إغلاق النافذة الرئيسية. واتضح كنت قد فعلت إخفاء () على شاشة البداية بدلا من إغلاق () لذلك كان لا يزال كامنا في الخلفية الحفاظ على تطبيق قيد الحياة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top