已取消任务时任务仍在运行

Phia123 Eto

这是任务代码

public async Task Demo(int row_index, CancellationToken token)
        {
            Task t1 =  Task.Run(() =>
            {
            ChromeOptions chromeOptions = new ChromeOptions();
            ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService();
            chromeDriverService.SuppressInitialDiagnosticInformation = true;
            chromeDriverService.HideCommandPromptWindow = true;
            this.chrome[row_index] = new ChromeDriver(chromeDriverService, chromeOptions);
            this.chrome[row_index].Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(59.0);
            Dologin(row_index);
            //Lay Ten Fb
            chrome[row_index].Url = "https://facebook.com/profile";
            var conchim = chrome[row_index].FindElementByCssSelector("#fb-timeline-cover-name > a");
            this.dataGridView1.Rows[row_index].Cells["trangthai"].Value = "Tiến Hành Lấy Tên Facebook";
            foreach (DataGridViewRow r in dataGridView1.Rows)
            {
                string value1 = r.Cells[0].Value.ToString() ?? string.Empty;
                if (value1 == tkfacebook)
                {
                    r.Cells[4].Value = conchim.Text;
                    break;
                }
            }
            },token);
        }

这是代码运行任务和取消任务。

CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token;
public async void HandleValue(DataGridViewCell cell, int row_index)
{
    switch (cell.Value.ToString())
    {
        case "Bắt đầu":
            bool flag7 = Convert.ToInt32(this.txtClickStart.Value) > Convert.ToInt32(this.txtClickEnd.Value);
            if (radioButton1.Checked && !flag7)
            {
                cell.Value = "Kết Thúc";
                token = source.Token;
                await Demo(row_index,token);
            }
            if (flag7)
            {
                this.dataGridView1.Rows[row_index].Cells["trangthai"].Value = "Cài đặt thời gian  không đúng";
                MessageBox.Show(new Form
                {
                    TopMost = true
                }, "Cài đặt thời gian  không đúng, hãy cài đặt lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return;
            }
            bool flag3 = !radioButton1.Checked || !radioButton1.Checked && !radioButton2.Checked;
            if (flag3)
            {
                MessageBox.Show("Vui Lòng Chọn Trình Duyệt Để Bắt Đầu Chạy");
            }
            break;
        case "Kết Thúc":
            source.Cancel();
             chrome[row_index].Quit();
            cell.Value = "Bắt đầu";
            this.dataGridView1.Rows[row_index].Cells["trangthai"].Value = "Bạn đã chọn kết thúc làm việc";
            break;
    }
}

线程不起作用,所以我执行Task。但是当我已经执行任务取消时它仍然运行。......

source.Cancel();

使发布更长以使Avablie能够发布。不要在意此行..dfsdfsdfsddfsddsadasdsadasdsadasdasdassdasdasdasdasdasdasdasdasdasdasdadda

奈尔

如果您打算取消逻辑的执行,则需要检查IsCancellationRequested标志。

while(!token.IsCancellationRequested)
{
 //whatever logic you want run should be placed here. This logic won't be
 //executed after you call Cancel()
}

在调用Cancel()令牌源之前,上述逻辑将继续执行您的逻辑您可以找到示例12

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查以前的任务是否仍在运行并停止/取消它?

来自分类Dev

无法重新运行已取消的任务

来自分类Dev

如何在仍在运行任务的同时降低功耗?

来自分类Dev

Gulp 更改后仍在运行旧版本的任务

来自分类Dev

调用Wait()或WaitAll()时任务总是取消

来自分类Dev

在RxJava中取消超时任务

来自分类Dev

调用Wait()或WaitAll()时任务总是取消

来自分类Dev

取消的操作仍在运行

来自分类Dev

如果正在运行,则取消异步任务

来自分类Dev

取消已经运行的任务

来自分类Dev

任务已取消异常(ThrowForNonSuccess)

来自分类Dev

如何创建已取消的任务

来自分类Dev

如何还原已取消的任务

来自分类Dev

尝试从 WebApi 下载文件时任务被取消

来自分类Dev

尽管没有现货实例,AWS ECS任务仍在运行

来自分类Dev

Azure 持久功能 - 即使在完成所有任务后,状态仍在运行

来自分类Dev

为什么已取消任务并再次运行新任务?

来自分类Dev

创建超时任务

来自分类Dev

取消时,连续链中的哪个任务正在运行?

来自分类Dev

取消时,连续链中的哪个任务正在运行?

来自分类Dev

任务并行库异常处理“任务已取消。”

来自分类Dev

任务并行库异常句柄“任务已取消。”

来自分类Dev

在运行测试之前如何运行任务

来自分类Dev

通过CompletionService检查已取消的任务

来自分类Dev

Visual Studio 2013“任务已取消”

来自分类Dev

已取消的任务也显示为已完成

来自分类Dev

TFS 2015:发布工件-“任务已取消”

来自分类Dev

YouTube API上传“任务已取消”

来自分类Dev

如何为已取消的任务添加延续