Joseph Albahari による「Threading in C#」の「PART 1: GETTING STARTED」の Passing Data to a Threadに従います。
すなわちパッセージ:
====== 引用の開始
"このアプローチでは、メソッドに任意の数の引数を (どこに?) 渡すことができます。複数ステートメントのラムダで実装全体をラップすることもできます。
new Thread (() =>
{
Console.WriteLine ("I'm running on another thread!");
Console.WriteLine ("This is so easy!");
}).Start();*
匿名メソッドを使用して、C# 2.0 で同じことをほぼ同じように簡単に行うことができます。
new Thread (delegate()
{
...
}).Start();
============ 引用の終わり
つまり、次のように「簡単に」試しました。
new Thread
(delegate
{
Console.WriteLine("I'm running on another thread!");
Console.WriteLine("This is so easy!");
}
).Start();
しかし、それはエラーを生成します:
次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'System.Threading.Thread.Thread(System.Threading.ThreadStart)' と 'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)'
コードを実行するためにコードをどのように明確化できますか?回答済み (かっこを忘れていました。とにかく、それは元の主な質問ではありませんでした)() =>
また、空のリストがどこに向けられている/適用されている のかよくわかりませんでし たか?- また、「メソッドに任意の数の引数を渡すことができる」メソッドとは何ですか?
- 空のリストを介した (任意の数の) 引数の受け渡しを理解する方法は?
更新(Jon Skeet のコメントに対応):
いいえ、C# 2 にこだわっていません。
前の文章と同じ質問:
========== 引用の開始:
"スレッドのターゲット メソッドに引数を渡す最も簡単な方法は、目的の引数でメソッドを呼び出すラムダ式を実行することです。
static void Main()
{
Thread t = new Thread ( () => Print ("Hello from t!") );
t.Start();
}
static void Print (string message)
{
Console.WriteLine (message);
}
このアプローチでは、任意の数の引数をメソッドに渡すことができます。」
=============== 引用の終わり
Update2:
最も完全な答えは@LeeによるIMOですが、最初に尋ねたことさえなかったことにすぐに答えることを推測するための正しい別の答えとしてマークしました-空の括弧に何かを入れる方法(リストで呼び出すのはすでに怖いです)または引数による)