这个问题是中断是另外开了一个线程,
public class form2
{
onSerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
form1.getNum();
}
}
Form1是一个窗体类。
有没有什么办法不用static Form1 form1;form1=new form1();
有没有方法可以不用static就可以调用form1.getNum()?????????
public class form2
{
onSerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
form1.getNum();
}
}
Form1是一个窗体类。
有没有什么办法不用static Form1 form1;form1=new form1();
有没有方法可以不用static就可以调用form1.getNum()?????????
public static Program
{
static void Main()
{
...
} public static double GetNum(SerialPort sp)
{
//code here
}
}调用:
Program.GetNum(sender as SerialPort);
目标窗体.Invoke(new Action(()=>你的代码));或是某个地方,例如启动窗体的时候执行一句:
Control.CheckForIllegalCrossThreadCalls = false;
首先我是做上位机,这个的应用是进行上位机和下位机通信,用的rs232串口。
onSerialDataReceived(get.cs)这个是下位机触发信号事件。我在触发事件中需要调用一个(form.cs)类中的方法,也就是触发就调用。那么一般调用方法我们都是new一个对象实例或者将对象传递给当前类(这个是我现在仅知得两种方法)。
但是这两种方法都一个问题,onSerialDataReceived这个事件是多线程事件,如果在创建实例的时候不同时static实例,在onSerialDataReceived中实例就是null,
我看到有一份代码中可以不加static就能够将实例在onSerialDataReceived中调用想问问有人能够指点我一下不,代码看的头昏没看懂
2、如果人家要很复杂的调用才能实现STATIC的功能,那你何必要用人家的方法
3、如果别人告诉你的方法就是你看不懂的方法,那你怎么办总结:如果你真的有不用STATIC就能调用的方法,那你就努力看懂人家的代码。如果没有就别纠结这个问题,直接用STATIC
2.人家的方法自己不用过怎么知道好不好。
3.如果是我看不懂的方法那就太好了,方法调用最多100行,但是项目很多,而且跳类,没有注释,谢谢
最后说一句,我在看,承认是想要简单一点,有人教肯定方便一点。
最后我总结一下:个人感觉意思就是对象设置成实例的方法,或者类?这块其实大家看代码讨论很方便,但是代码太长,所以只能将问题稍微细化了问,谢谢