c# 跨线程访问控件

我在窗体内创建了线程A用于监听连接然后在接受到连接后由线程A创建了线程B来处理连接在线程B内我要改写窗体上控件的属性请问怎么弄?线程B是一个类的一个方法因为我要为线程B传... 我在窗体内 创建了线程A用于监听连接 然后在接受到连接后 由线程A创建了线程B来处理连接 在线程B内 我要改写窗体上控件的属性 请问怎么弄?
线程B是一个类的一个方法 因为我要为线程B传递一个参数 使用了类的构造函数传递 这样导致我不能通过委托的方法跨线程访问控件
展开
 我来答
zhanghuansss
推荐于2016-04-25 · 超过13用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
用委托,具体代码如下~:
public delegate void MyInvoke(string str);

private void button9_Click(object sender, EventArgs e)
{
//_myInvoke = new MyInvoke(SetText);
//CheckForIllegalCrossThreadCalls = false;
Thread t = new Thread(new ThreadStart(fun));
t.Start();
}

private void fun()
{
//_myInvoke("dddd");
SetText("ddd");
}
private void SetText(string s)
{
if (textBox6.InvokeRequired)
{
MyInvoke _myInvoke = new MyInvoke(SetText);
this.Invoke(_myInvoke, new object[] { s });
}
else
{
this.textBox6.Text = s;
}
}
阿晖旷蔚
2019-06-23 · TA获得超过3695个赞
知道大有可为答主
回答量:3054
采纳率:34%
帮助的人:436万
展开全部
那你可以在停止线程代码后再加上销毁excel资源的代码啊。
Microsoft.Office.Interop.Excel.Application属于不可托管资源,不会自动释放的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式