你將如何發送/傳遞實例引用到新的任務?C# - 發送UI參考到Task.Factory.StartNew();?
比方說,我有這樣的:
public BlockingCollection<string> blockingCollection = new BlockingCollection<string>();
textBox_txt.Text = "Result: ";
public Task t = Task.Factory.StartNew(() =>
{
foreach (string value in *???1*.blockingCollection.GetConsumingEnumerable())
{
*???1*.blockingCollection.Take()
[...bla...]
*???2*.Invoke(new updateTextBox_txtCallback(*???2*.updatetextBox_txt)
, new object[] { "THE RESULT!\r\n" });
}
});
我猜測,在這裏的某個地方StartNew(() =>
我要傳遞給blockingContent和文本框的引用。我環顧四周,但無法弄清楚語法。 (它很毛茸茸)
請幫忙。因此,如果我從任務中調用一個靜態對象,它顯然是有效的;但我需要任務來處理實例;即blockingCollection和updateTextBox_txtCallback Invoke。
這不起作用。我需要引用,否則我會得到「字段初始值設定項不能引用非靜態字段」或「在當前上下文中不存在」。 – Spectraljump 2010-12-05 18:04:52
該錯誤必須來自其他地方 - 我沒有看到您發佈的代碼中會產生該問題的任何內容。 – 2010-12-05 18:06:52