私は4つのウィンドウフォームを持ち、1つの別のフォームを使用します。このメソッドはフォームのいずれかで処理する必要があります。スレッドがこのメソッドを使用したい場合、メソッドが他のスレッドによってこの時点で呼び出されていないことを確認する必要があります。異なるスレッドからメソッドを呼び出す
私はその
bool methodIsBusy = false;
void Method()
{
methodIsBusy = true;
//do method things
//done method things
methodIsBusy = false;
}
とメソッドがスレッドかによって占有されていることを知ることがmethodIsBusyを使用するようなソリューションを持っています。この問題に対する創造的な解決策はありますか?ありがとう。
フォームのメソッドをUIスレッド以外のスレッドから呼び出す場合は、何か間違っていることがほぼ確実です。これはうまく終わらないでしょう。あなたがしていることを再考してください。 – xxbbcc
なぜですか?私は、主なフォームから4つのフォームを作成しています。メインフォームのメソッドを新しいフォームで使用できないのはなぜですか?何が問題を引き起こす可能性がありますか? –
@MehmetErkol問題は、別のフォームのメソッドを呼び出すのではなく、非UIスレッド*から呼び出すことです。あなたはUIスレッド*からこのようなメソッド*を呼び出すべきであり、その時点ですべての呼び出しがUIスレッド内にあるので、それらは同時に実行されていないことを既に知っています。 – Servy