有一個字串串列,以串列里的每個元素為名字生成對應的新執行緒。是可行的嗎?
或者問題換成如何自動生成新的執行緒去呼叫我已有的方法。望大神們指教。
uj5u.com熱心網友回復:
public static void Main(string[] args)
{
int[] arr = { 1, 2, 3 };
foreach (var item in arr)
{
Task.Factory.StartNew(x => { Console.WriteLine(x); }, item);
}
Console.ReadLine();
}
uj5u.com熱心網友回復:
Dictionary<string, Action<object>> dictAction = new Dictionary<string, Action<object>>();
dictAction["m1"] = method1;
dictAction["m2"] = method2;
foreach (var a in dictAction)
{
Task.Factory.StartNew(a.Value, a.Key);
}
void method1(object state)
{
}
void method2(object state)
{
}
uj5u.com熱心網友回復:
謝謝,我其實是想做一個類似于鬧鐘的小工具用來練手。按照您的例子。
Task.Factory.StartNew(parm => { CheckTimeDiff(parm);},tiemspanstring);
想在這里呼叫方法CheckTimeDiff( ),以達到我多個時間檢查的目的。
private void CheckTimeDiff(object timespan)
{
Console.WriteLine("Enter this function");
Console.WriteLine("parameter timespan is: {0}",timespan);
int timeDifference = (int)timespan;
//比較運算......;
}
但實際中我發現,在這個方法中只有console.writeline或者messagebox.show或thread.sleep才會被執行,其它的任何賦值等操作都不會被執行,如上面的int timeDifference = (int)timespan;就不會被執行。請教一下這是什么原因?謝謝
uj5u.com熱心網友回復:
因為我用的是 application程式。
如果是winform,需要async/await來等待回呼
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/97718.html
標籤:C#
下一篇:c#練習題,求大佬指教
