2017-02-16 3 views
-1

Invoke()(スレッドから)と同じクラスのinvoke()なしのメソッドから変更できるプロパティがあります。メインスレッドのInvoke()についての問い合わせ

同じ瞬間に呼び出されるとどうなりますか?

これは可能ですか?それ以来、いくつかのメソッドの状態に影響を与えることができます。例えば

public class Test{ 
    public bool testBool { get; set; } 

    public void MethodWIthInvoke(){ 
     this.Invoke(new Action(() => 
     { 
      if (testBool) 
      { 
       testBool = false; 
      } 
     })); 
    } 

    public void Method(){ 
     if (testBool) 
     { 
      testBool = false; 
     } 
    } 
} 
+0

「Method()」がUIスレッドからのみ呼び出される限り、問題ありません。 – itsme86

+0

はい、 'Method()'はUIスレッドからのみ呼び出されます。同時に実行するとどうなりますか? – Cristian18

+0

@ Cristian18両者が同じスレッドから実行されている場合はできません。それはどちらか一方をするでしょう。 – Servy

答えて

-1

私は方法の両方が同じスレッドから呼び出されるので、なぜあなたは、とにかく、コードをこのように確認する必要があります、それは大丈夫だろうかわかりません。

public class Test{ 
public bool testBool { get; set; } 

public void Method() 
    { 
     if (this.InvokeRequired) 
     { 
      this.Invoke(new Action(() => 
      { 
       if (testBool) 
       { 
        testBool = false; 
       } 
      })); 
     } 
     else 
     { 
      if (testBool) 
      { 
       testBool = false; 
      } 
     } 
    } 
} 
関連する問題