有沒有區別我需要有效的(使用最少的線程可能)異步的計算方式(我使用.net 4)。 一種方式是ThreadPool.QueueUserWorkItem和委託BeginInvoke
ThreadPool.QueueUserWorkItem(f => job.DoWork());
job.Completed += (a, b) => {...} //Completed is event I fire when work is done
另一種可能性是執行異步方法作爲先於C#5節,這基本上是一個代表主叫BeginInvoke
done。
我的問題是:除了不同的語法之外,這兩者之間是否有區別,因爲它似乎BeginInvoke
也使用ThreadPool
的新線程?
另一方面:是否有可能在與調用方相同的線程上定義和調用方法(如在javascript中所做的)(在任何C#版本中)?