调试了一台拧丝机。关于多线程,边边角角的设计颇多,再次做个记录:
1、关于Thread.Sleep() 与 SpinWait.SpinUntil()
测试感觉性能没什么太大区别,虽然网上说后者有可能更好;
2、关于线程间通信
涉及内容 AutoResetEvent、lock、Interlocked.Exchange、Semaphore
区别不大,主要有两个知识点需要关注:
private AutoResetEvent signal=new AutoResetEvent(false);
public static AutoResetEvent signal=new AutoResetEvent(false);
关于两者区别,一句话总结:前者针对对象而言,后者针对类而言!这里很有意思!!!真正弄懂这里,多线程就OK了。
3、关于板卡
无论谁家板卡,线程安全的问题一定要咨询清楚了。