如何使用C#语言实现两语句在执行过程有一个时间差度?
问题是这样的: 
    我在实现serialport串口通讯时,碰到这样的问题,在串口初始化好后,向串口发送信号后,使用函数Writeline()(或其他的读函数)读串口缓冲区的数据,问题就在这里,不能马上读到数据,需要一段等待时间,再能读出数据,所以就要求在发送读信号好等待一个时间再读,请各位大虾帮忙出个注意或写一两条代码,谢谢!
------解决方案--------------------thread.sleep(3000);   
 能用,但肯定不是好办法……
------解决方案--------------------用Thread.Sleep()方法。   
 如:   
 Thread.Sleep(3000);线程休眠3秒钟!
------解决方案--------------------thread.sleep 
 或者用事件触发
------解决方案--------------------等全部执行完了再提交啊
------解决方案--------------------Thread.Sleep(毫秒数)
------解决方案--------------------线程睡眠或Timer定时
------解决方案--------------------写一个等待时间函数
------解决方案--------------------如果你的发送和接受都是在同一个线程上,用Sleep最简单,向上边各位说的就行; 
 如果不在同一个线程上可以用ManualResetEvent从一个线程上给另一个发信号.   
 另外,不知道LZ用哪些方法读串口,它是否有阻塞方式的读取呢?也就是说没来信号的时候读的代码被阻塞在那里,一直到有数据传过来为止.
------解决方案--------------------可以设置一个信号量  
 等数据处理好了 再进行读取 
 你可以找一下线程同步方面的例子   
 Thread.Sleep(毫秒数); 也可以 但没有使用同步的方法好使
------解决方案--------------------不要在主线程处理,另外开一个线程来处理吧!
------解决方案--------------------LS 说的对,你可以试试把读抛到另外一个线程上.帮你写了个例子:   
         System.Threading.ManualResetEvent _formClosing = new ManualResetEvent(false);   
         private void Form1_Load(object sender, EventArgs e) 
         { 
             timer1.Start(); //定时器启动    
             //生成一个新的线程接收,主线程不用等了. 
             System.Threading.Thread t = new Thread(new ThreadStart(ReceiveData)); 
             t.Start(); 
         }   
         private void timer1_Tick(object sender, EventArgs e) 
         { 
             string firstname, lastname, result1; 
             try 
             {  //串口打开 
                 sp.Open(); 
                 //向串口发送一字符‘a’ 
                 sp.WriteLine( "a ");                 
                 //timer1.Stop(); 
             } 
             catch (Exception ex) 
             { return; } 
             finally 
             { sp.Close(); }   
         }      
         ///  <summary>  
         /// 它运行在另外一个线程上. 
         ///  </summary>  
         private void ReceiveData() 
         { 
             //循环读,每次等待50毫秒,Form关闭就退出循环 
             while (!_formClosing.WaitOne(50, false)) 
             { 
                 //从串口缓冲区里读数据 
                 string result1 = sp.ReadLine().ToString();                   
                 //把数据写入数据库   
                 if (result1 != null && result1.Length >  0) 
                 { 
                     firstname = result1.Substring(0, 2); 
                     lastname = result1.Substring(2, 2); 
                     datainsert(firstname, lastname); 
                 }   
             } 
         }   
         private void Form1_FormClosed(object sender, FormClosedEventArgs e) 
         { 
             //给信号停止接收线程 
             _formClosing.Set(); 
         } 
------解决方案--------------------帮顶了