目前工作的一個多線程的WP 7.1.1應用和略多於在「初級階段」的應用程序退出時半沒有拋出任何異常。它只是以所有線程返回0x0並且沒有輸入任何關閉/退出/退出事件結束。的Windows Phone 7.1的應用程序退出而不引發任何異常
...
The thread '<No Name>' (0xfde00d2) has exited with code 0 (0x0).
The thread '<No Name>' (0xe860116) has exited with code 0 (0x0).
The thread '<No Name>' (0xfdf00c6) has exited with code 0 (0x0).
The thread '<No Name>' (0xf8d012e) has exited with code 0 (0x0).
The thread '<No Name>' (0xfd5010e) has exited with code 0 (0x0).
The thread '<No Name>' (0xfbc011a) has exited with code 0 (0x0).
The thread '<No Name>' (0xf9900ee) has exited with code 0 (0x0).
The program '[268042506] UI Task: Managed' has exited with code 0 (0x0).
EOL
「初始階段」究竟是什麼意思?我使用「Windows Phone性能分析」對應用程序進行了描述,並附帶了一些調試消息和一些日誌記錄,我估計它在啓動後大約3-4秒。在他看來,GUI在很短的時間內就已經可見了。
,我幾乎可以肯定,二人發生與以下調用的問題:
public static Context ReadOnly
{
get { return new Context(ConnectionReadOnly); }
}
:
private static List<MyEntries> EntriesLoad()
{
using(var context = Context.ReadOnly) // <- works
{
return context.MyEntries.Where(m => !m.Deleted).OrderBy(m => m.Name).ToList(); // <- problem
}
}
private async void EntriesReload()
{
EntriesLoaded = false; // <- called
var entries = await TaskEx.Run<List<MyEntries>>(EntriesLoad); // <- called
EntriesLoaded = true; // <- only get's called 50% of the time/ otherwise app quits
}
爲了防止DataContext的任何多線程問題,新的上下文對每個調用創建
我甚至嘗試過BackgroundWorker和ThreadPool,而不是Async CTP 3,但效果相同。我知道非常類似的問題已被問到many times before,但我根本找不到任何解決方案,至於我的問題。有什麼方法/程序可以找到導致異常的確切方法(原因,loc)?可以創建多少個線程有任何限制嗎? DataContext可以以這種方式安全使用嗎?
非常感謝您的幫助。