求助,关于线程调用非静态方法
是这样的,
Thread thread = new Thread(new ParameterizedThreadStart(SendPickNotice));
提示不能引用非静态方法或字段。
我尝试将SendPickNotice方法加上static ,但里面用了this.控件,所以方法不能用static了
这怎么解决?
另外,我在click事件里实例thread线程 就可以调用非静态的SendPickNotice?为什么?我想到了事件是委托的一种,是不是说我要定义一个委托来用线程?那具体怎么写?
好像这些问题有点笨~~~但找了半天不知道怎么搜索相关的资料,求助各位了,先谢谢
------解决方案--------------------static xxx xxxxx() // 把红色部分删除
{
Thread thread = new Thread(new ParameterizedThreadStart(SendPickNotice));
}
------解决方案--------------------LZ是想通过点击按钮,生成并启动线程吗?
------解决方案--------------------public static Thread thread;
某些方法里面来new
public void test()
{
thread = new Thread(new ParameterizedThreadStart(SendPickNotice));
}
这个thread就可以全局了,new可以在其他方法里。
------解决方案--------------------
LZ可以使用委托来做
delegate ThreadMethod();// 可以带参数
ThreadMethod delegateMethod;
// 绑定委托
delegateMethod += Click;
// 假定该方法实现委托
public void Click() {
}
// 线程绑定委托,如果提示STATIC,则可以在委托申明上加入STATIC试试