我移植到.NET Silverlight和我有這個在.NETTask.Run相當於在Silverlight
public void OnCompleted(Action continuation)
{
if (Continuation == Sentinel ||
Interlocked.CompareExchange(
ref Continuation, continuation, null) == Sentinel)
{
//original code in .net
//Task.Run(continuation);
//can i use this as Task.Run alternative in silverlight?
Task.Factory.StartNew(continuation);
}
}
的Silverlight可是沒有Task.Run。查看msdn
Run方法是StartNew方法的一種更簡單的替代方法。
幸運的是,Silverlight確實有StartNew方法。
我的問題是,我可以在Silverlight中使用StartNew方法作爲Task.Run替代方案嗎?有什麼我應該知道的?
'Task.Run()'也使用調度器。不同之處在於'StartNew()'使用'TaskScheduler.Current',而'Run()'使用'TaskScheduler.Default'。另外,'Run()'對於異步方法有重載,'StartNew()'不會。有關更多詳細信息,請參閱[* Task.Run vs Task.Factory.StartNew *](http://blogs.msdn.com/b/pfxteam/archive/2011/10/24/10229468.aspx)。 – svick