Exemple #1
0
        void saveThreading(object saveParam)
        {
            SAVEPARAM        param = (SAVEPARAM)saveParam;
            StreamWriter     sw    = param.sw;
            Form_ProgressBar form  = param.bar;

            param.mrEvent.WaitOne();

            string line = "";

            for (int i = 0; i < dataGridViewshow.Rows.Count; i++)
            {
                line = "";
                for (int l = 0; l <= 12; l++)
                {
                    if (dataGridViewshow.Rows[i].Cells[l].Value != null)
                    {
                        line += dataGridViewshow.Rows[i].Cells[l].Value.ToString() + " ";
                    }
                }

                sw.WriteLine(line);
                form.addValue();
            }

            form.returnResult = DialogResult.OK;
            form.Invoke(new Action(() => { form.Close(); }));
        }
Exemple #2
0
        private void buttonSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            TimeSpan       ts   = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);

            save.FileName = "save-" + Convert.ToUInt64(ts.TotalSeconds).ToString();
            if (save.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            bool prevIsOpen = usbCAN.IsOpen;

            if (prevIsOpen)
            {
                if (usbCAN.shutDevice() == false)
                {
                    return;
                }
            }

            Thread     threadSave = new Thread(new ParameterizedThreadStart(saveThreading));
            string     sPath      = save.FileName;
            FileStream file       = new FileStream(sPath, FileMode.Create);
            SAVEPARAM  parm       = new SAVEPARAM();

            parm.sw      = new StreamWriter(file);
            parm.mrEvent = new ManualResetEvent(false);

            parm.bar = new Form_ProgressBar(dataGridViewshow.Rows.Count, parm.mrEvent, threadSave);

            threadSave.Start(parm);
            parm.bar.ShowDialog();
            if (parm.bar.returnResult == DialogResult.Abort)
            {
                MessageBox.Show("你终止了操作");
            }
            else
            {
                MessageBox.Show("保存成功");
            }

            threadSave.Abort();
            threadSave = null;

            parm.sw.Close();
            file.Close();

            if (prevIsOpen)
            {
                if (usbCAN.startDevice() == false)
                {
                    return;
                }
            }
        }