(cs结构)利用扫描枪,扫描读取数据过程中,如何利用线程,同时弹出“数据正在读取”对话框,怎么实现!谢谢。

解决方案 »

  1.   

    MSDN上搜索Thread就可以了
    然后看看Lock()的用法
    使用对话框弹出你想要的
      

  2.   

    利用扫描枪,扫描读取数据过程中
    这个我不知道用什么组件,
    但是用多线程,在你读时,你甚至可以给一个进度条,给你一个例子
      int Digits = 100;        void CalcPiThread()
            {
                CalcPi(Digits);
            }
            private void button1_Click(object sender, EventArgs e)
            {
                Thread piThread = new Thread(new ThreadStart(CalcPiThread));
                piThread.Start();
            }        void ShowProgress(string pi, int totalDigits, int digitSofar)
            {            if (this.InvokeRequired == false)
                {
                    this.textBox1.Text = pi;
                    this.progressBar1.Maximum = totalDigits;
                    this.progressBar1.Value = digitSofar;
                }
                else
                {
                    ShowprogressDelegate showprogress = new ShowprogressDelegate
                    (ShowProgress);
                    this.BeginInvoke(showprogress, new object[] { pi, totalDigits, digitSofar });
                }        }
           // string ninediitsofpi = "141592653";
            int Getnine(int i)
            {
                Thread.Sleep(2000);
                return (i);
            }
            void CalcPi(int digits)
            {
                StringBuilder pi = new StringBuilder("3", digits + 2);
                ShowProgress(pi.ToString(), digits, 0);            if (digits > 0)
                {
                    pi.Append(".");
                    for (int i = 0; i < digits; i += 9)
                    {
                        int ninedigits = Getnine(i + 1);
                        int digitCount = Math.Min(digits - i, 9);
                        string ds = string.Format("{0:D9}", ninedigits);
                        pi.Append(ds.Substring(0, digitCount));
                        ShowProgress(pi.ToString(), digits, i + digitCount);                }
                }
            }
      

  3.   

    在“数据正在读取”对话框中启动新的线程,在线程函数中操作扫描枪即可。另外推荐使用Backgroudwork,可以向ui线程发消息,避免线程操作ui的错误。如不清楚,请自己google之
      

  4.   

    谢谢楼上,读取数据时,扫描枪直接扫到textbox上就可以了,但是由于所扫描的内容很长,所以希望在往文本框扫值的过程中,弹出一个进度条,怎么实现呢?万分感谢……
      

  5.   

    其他的楼上说的都很明白了,功能实现都没什么问题,补充下,进度条滚动及其一些显示操作不要在硬中断中操作,这样可能会阻塞串口,可以设置一个标志位来指定什么时候做什么操作,用个timer刷新来执行.