Code Bye

C# 跨线程控制 ToolStripMenuItem

由于ToolStripMenuItem没有InvokeRequired属性,所以委托事件不知道怎么写。请教!
解决方案

5

请不要截图 谢谢
app.Current.Dispatch.beginInvoke(new Action(()=>{
//跨线程操作
b.Enable = false;
}));
结题拿分

10

TSM_select.BeginInvoke(new Action(() =>{
 TSM_select.Enabled=b;
}));

结贴拿分

5

 private delegate void DelegateSelectEnable(bool b);
private DelegateSelectEnable SelectEnableMethod;
public void selectEnable(bool b)
{
TSM_select.Enabled = b;
}
然后在调用这个方法的地方改一下,如下:
if( SelectEnableMethod == null )
this.SelectEnableMethod = new DelegateSelectEnable(this.selectEnable);
bool b = true;
this.BeginInvoke(this.SelectEnableMethod, b);
说明,这里的this指的是当前winForm窗口,
当然也可以是任何一个具体BeginInvoke方法且已经实例化的控件,

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# 跨线程控制 ToolStripMenuItem