誰かが違いを知っていますか
Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() =>
{
と
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
違いはないはずです。ThreadStart
としてAction
定義されます。
public delegate void ThreadStart();
public delegate void Action();
つまり、パラメーターも戻り値もないデリゲートです。したがって、意味的には同じです。
ただし、コンストラクターと強く関連しているため、Action
and notを使用します。ThreadStart
ThreadStart
Thread
ThreadStart
のコンテキストでとの間に違いがあるようです。ThreadStart
Action
BeginInvoke
Vlad が述べたように、どちらもデリゲート内でコードを正しく実行します。
ただし、デリゲート内で例外が発生した場合、ThreadStart
結果はTargetInvocationException
. しかし、使用Action
すると、デリゲートからの正しい例外が得られます。
Action
このため、優先する必要があります。
この質問を見てください。