2014-10-28 33 views
6

Bu özelliğim viewmodel'im var.'System.Threading.Tasks.TaskCanceledException', uygulama kapatılırken WindowsBase.dll dosyasında oluştu

public bool IsKWH 
{ 
    get { return _isKwh; } 
    set 
    { 
     if (value.Equals(_isKwh)) return; 
     _isKwh = value; 
     NotifyOfPropertyChange(() => IsKWH); 
    } 
} 

Bazen (yaklaşık 1 kere 10) Başvurumu kapatma zaman NotifyOfPropertyChange aşağıdaki hatayı alıyorum:

türü 'System.Threading.Tasks.TaskCanceledException' bir istisna WindowsBase oluştu. dll ancak kullanıcı kodunda işlenmedi

Ek bilgi: Bir görev iptal edildi.

Görüntü modelimde bir System.Threading.Timer var ve bu ve diğer birçok özelliği güncelleştirmek için bir web servis çağrısı yapıyor.

Caliburn.Micro kullanıyorum ve 1,5'den 2.0'a güncellendiğimde başlamış gibi görünüyor.

Bu hatanın oluşmasını önlemek için yine de var mı?

+0

Web servis çağrısının kodunu sağlayabilir misiniz? Bunun için TPL kullanıyor musunuz? – ZoolWay

cevap

3

Uygulamanızın kapatılmasından önce uygulamanızın uyguladığı ikincil iş parçacıklarını atma konusunda zaman zaman başarısız olmanız olasıdır ve bu genellikle gönderdiğiniz ileti gibi bir hata iletisine neden olur.

protected override void OnClosing(System.ComponentModel.CancelEventArgs e) 
{ 
     // close all active threads 
     Environment.Exit(0);  
} 

Bu kapanmadan önce tüm etkin konuları uygulamayı kapanmaya zorla olmalıdır: Aşağıdaki denemenizi öneririz olabilir. Benzer bir problem yaşadığımı hatırlıyorum ve o küçük düzeltmeyi çözdüm. Bunu denemeye değer olabilir, yardım etmezse bana bildirin ve başka hangi çözümlerin olabileceğini görelim. Bu yardımcı olur umarım.

+1

Bu benim için çalışıyor! –

+1

Teşekkür ederim bayım bu çok yardımcı oldu. – Lostaunaum