Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将一直工作到Ping过程完成。你能帮我吗?你可以把while循环放在后台工作程序中。在异步调用上设置bacadata。请参阅modified Answer您可能只想将整个db调用放在后台工作线程上,而不是连接到主线程中,然后读取工作线程中的行。我曾尝试使用_C# - Fatal编程技术网

C# 将一直工作到Ping过程完成。你能帮我吗?你可以把while循环放在后台工作程序中。在异步调用上设置bacadata。请参阅modified Answer您可能只想将整个db调用放在后台工作线程上,而不是连接到主线程中,然后读取工作线程中的行。我曾尝试使用

C# 将一直工作到Ping过程完成。你能帮我吗?你可以把while循环放在后台工作程序中。在异步调用上设置bacadata。请参阅modified Answer您可能只想将整个db调用放在后台工作线程上,而不是连接到主线程中,然后读取工作线程中的行。我曾尝试使用,c#,C#,将一直工作到Ping过程完成。你能帮我吗?你可以把while循环放在后台工作程序中。在异步调用上设置bacadata。请参阅modified Answer您可能只想将整个db调用放在后台工作线程上,而不是连接到主线程中,然后读取工作线程中的行。我曾尝试使用该代码,但出现了一个错误跨线程操作无效:控件“listBox2”是从创建它的线程以外的线程访问的“是的,您不能访问后台工作线程之外的变量或对象,即您不能直接更新表单控件。您可以收集数据,并在后台工作程序完成后将其作为结果返回。然后从主线程访问结


将一直工作到Ping过程完成。你能帮我吗?你可以把while循环放在后台工作程序中。在异步调用上设置bacadata。请参阅modified Answer您可能只想将整个db调用放在后台工作线程上,而不是连接到主线程中,然后读取工作线程中的行。我曾尝试使用该代码,但出现了一个错误跨线程操作无效:控件“listBox2”是从创建它的线程以外的线程访问的“是的,您不能访问后台工作线程之外的变量或对象,即您不能直接更新表单控件。您可以收集数据,并在后台工作程序完成后将其作为结果返回。然后从主线程访问结果。
private void ProsesSemuaKamera()
        {

            Stopwatch watch = Stopwatch.StartNew();

            Ping ping = new Ping();
            PingReply pingreply;

            BackgroundWorker BWKamera = new BackgroundWorker();

            OleDbConnection kon = new OleDbConnection(koneksi);
            OleDbCommand command = kon.CreateCommand();
            kon.Open();
            string selecturl = "select * from datakamera";
            command.CommandText = selecturl;
            OleDbDataReader bacadata = command.ExecuteReader();


            /* PING Kamera IP */

            while (bacadata.Read())
            {
                pingreply = ping.Send(bacadata["ipadd"].ToString());
                BWKamera.WorkerReportsProgress = true;
                BWKamera.DoWork += BWKamera_DoWork;
                BWKamera.ProgressChanged += BWKamera_ProgressChanged;

                BWKamera.RunWorkerAsync(); //error exists here

                if (pingreply.Status == IPStatus.Success)
                {
                    listBox1.Items.Add(bacadata["namakamera"].ToString());

                    if (CaptureSemuaKamera == null)
                    {
                        try
                        {
                            CaptureSemuaKamera = new Capture(bacadata["urlkamera"].ToString());
                        }
                        catch (NullReferenceException ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }

                    if (CaptureSemuaKamera != null)
                    {
                        Application.Idle += new EventHandler(ProcessFrameSemuaKamera);
                    }


                }
                else if (pingreply.Status != IPStatus.Success)
                {
                    listBox2.Items.Add(bacadata["namakamera"].ToString());
                }

                watch.Stop();
                File.AppendAllText(@"D:\Dokumen\Alfon\TA Alfon\Waktu Eksekusi Ping.txt", "Waktu eksekusi ping " + DateTime.Now + " :" + " " + watch.Elapsed.TotalMilliseconds.ToString() + Environment.NewLine);

            }       
            kon.Close();
       }

private void BWKamera_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 1; i <= 1000; i++)
            {
                BWKamera.ReportProgress(i);
                Thread.Sleep(1000);
            }
        }

        private void BWKamera_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            ProgressBarKamera.Value = e.ProgressPercentage;
            StatusKamera.Text = "Please Wait...";
        }

        private void BWKamera_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            StatusKamera.Text = "Done !";
        }
OleDbDataReader bacadata = command.ExecuteReader();
BWKamera.WorkerReportsProgress = true;
BWKamera.DoWork += BWKamera_DoWork;
BWKamera.ProgressChanged += BWKamera_ProgressChanged;

BWKamera.RunWorkerAsync(bacadata);
        private void BWKamera_DoWork(object sender, DoWorkEventArgs e)
    {

    OleDbDataReader bacadata = (OleDbDataReader)e.Argument;
    while (bacadata.Read())
        {
            pingreply = ping.Send(bacadata["ipadd"].ToString());