デリゲートを必須ではないにもかかわらず簡単に使用できますか?デリゲートを必須ではないにもかかわらず簡単に使用できますか?
答えて
Control.Invoke
を呼び出す場合は、InvokeRequired
を確認する必要はありません。チェックするとチェックされます。
Control.BeginInvoke
同じスレッドからのメッセージは時々役に立ちますが、メッセージキューの終わりにコールを置くのではなく、すぐに呼び出します。
具体的なアドバイスをするために何をやっているのかは分かりません。私はあなたが `BeginInvoke`を意味だと思う
public void redGreenLight()
{
WirelessGreenLight.Invoke(new MethodInvoker(redGreenLightImpl));
}
private void redGreenLightImpl()
{
// real work done here
}
ありがとうBen、私は永続的なことをお詫びしますが、私はWirelessRedLight、MobileRedLight、MobileGrenLightも呼び出す必要があります..つまり、4つのコントロールのいずれか...私は知りたい –
@HelloWorld_Always:いいえ 'if'sです。 'redGreenLight'は常に' Invoke'を使用し、 'redGreenLightImpl'はUIスレッド上で完全に動作するので' Invoke'は必要ありません。 –
oh gotit ...ありがとう! –
:あなたが発信者を変更することができない場合、
のか:あなたのサンプルコードを見てみると
が、これはあなたが必要とするすべてであります – SLaks
私は、1つの更新メソッドへの統合/リファクタリングを検討し、1回だけ起動します(Control.InvokeRequiredの場合に依存します)。 –
私はその質問を理解していません。 @SLaks、Invokeはまた、UIスレッドを呼び出すためのオプションです。 – Jeff