我有一個網格形式。網格有一個上下文菜單,其中一個菜單項應該爲網格中選定的每個項目創建報告。不過,我希望這些報告在單獨的線程上運行,並且在點擊報告項目後立即關閉上下文菜單。我仍然試圖理解這個全線程的東西。以下是我到目前爲止。這是發生了什麼事。當我點擊上下文菜單項時,會出現上下文菜單,然後出現第一個報告,暫停,然後出現第二個報告,暫停等。但是,上下文菜單直到最後纔會消失報告顯示。我並不擔心報告之間的暫停,但它看起來像是在同步處理。我主要想知道爲什麼上下文菜單不會立即消失。如何在.NET中異步運行報告?
void custodyRptItem_Click(object sender, RoutedEventArgs e)
{
foreach (CustodyItem curItem in CustodyControl.SelectedItems)
{
Dispatcher.BeginInvoke((ShowReportDelegate)ShowChainOfCustodyReport, curItem);
}
}
void ShowChainOfCustodyReport(CustodyItem item)
{
CustodyReport report = new CustodyReport(item);
report.Show();
}
號線正在這裏創建,ShowChainOfCustodyReport()運行在UI線程上。沒關係,當你真正創建一個線程時,它不太可能正常工作。 – 2010-11-13 19:00:56