1
我有一些菜單彈出動作按鈕。這是彈出式的,所以它是在新線程中創建的。我添加事件創建的按鈕是這樣的:多線程 - 如何調用動作
private StdProcedure m_ToInvoke;
public void AddButton()
{
Button myChildTempButton = new Button();
myChildTempButton.ItemClick += new ItemClickEventHandler((x, y) =>
{
HidePopup(); m_ToInvoke = myOpp.Procedure;
});
}
StdProcedure是委託
public delegate void StdProcedure();
,並關閉事件之後:
protected override void OnPopupClosed()
{
base.OnPopupClosed();
if (m_ToInvoke != null) m_ToInvoke.Invoke();
}
這並不正常工作。有時調用操作停止了我的另一個線程,我不明白它是如何工作的。
我的問題是什麼是之間的不同:
m_ToInvoke()
m_ToInvoke.Invoke()
m_ToInvoke.BeginInvoke()
m_ToInvoke.DynamicInvoke()
,我應該在這裏使用?
對我來說第一和第二個效果是一樣的。