私はvolatileを使用しようとしました....グローバル変数が新しいスレッドで初期化されない
qは、クラス内のどのメンバーからもアクセスできるグローバル変数です。 私は スレッドtを作成する必要がありますか?クラスAで?
class A
{
string q;
public void SomeMethod()
{
new Thread(Method()).Start();
Console.WriteLine (q); //this writes out nothing
}
private void Method()
{
q = "Hello World";
}
}
yup(:ありがとう、私はそれを自分自身で考え出した。スレッドの開始にそれほど時間がかかるとは思わなかった –
@LawrenceLタスクが実行可能な同期方法としてどれくらいの時間がかかっているかに頼ることを考えてください。 –
@ LawrenceL:スレッドの開始には、CPUの観点から見てどれくらいの時間がかかるので、1世紀かかっていると仮定します。スレッドの開始は最低でも数百万回* *信じられないほど高価なリソース**あなたが新しいチームメンバーを雇うことについて考える方法をスレッドと考えると、数ヶ月かかる可能性があり、そのためには非常に高価で、仕事をするのが良いでしょう。 –