我是新來的Monodevelop以及UBUNTU,現在我正在嘗試開發一個使用c#的桌面應用程序來調查.Net並行性。當我使用Parallel.For循環時,我遇到了一個問題。在Internet上閱讀時,Dispatcher.beginInvoke會將工作線程完成的工作委託給UI線程。文章還說,如果你不使用調度程序,它將通過一個錯誤的桌面應用程序。但它仍然適合我。我不理解這裏發生了什麼(這裏是我使用的鏈接 - http://blogs.msdn.com/b/csharpfaq/archive/2010/06/01/parallel-programming-in-net-framework-4-getting-started.aspx)Dispatcher.BeginInvoke在paralell.For不工作
這裏是代碼:
Parallel.For(2, 20, (i) =>`enter code here`
{
var result = SumRootN(i);
this.Dispatcher.BeginInvoke(new Action(() =>
textBlock1.Text += "root " + i.ToString() + " " +
result.ToString() + Environment.NewLine)
, null);
});
如果我拿出「this.Dispatcher.BeginInvoke(新行動(()=>」的語句它仍然工作正常,但根據上面提到的我不應該工作的聯繫
詳情:
MonoDevelop的版本 - MonoDevelop的2.8.6.3 + DFSG-2
。 0 UBUNTU Version - 12.4
急需一些幫助!
謝謝你的時間。
調度程序是WPF框架的一部分,它沒有在Mono中實現。你試圖使用什麼樣的GUI框架?它可能是Windows窗體,然後這裏是你感興趣的方法:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.begininvoke(v=vs.100).aspx – 2012-08-07 12:26:45
我不明白你的意思「你想用什麼樣的GUI框架?」你能否向我詳細說明一下。 – Veeresh 2012-08-07 20:14:52
請看這裏:http://www.mono-project.com/Gui_Toolkits – 2012-08-09 09:10:03