吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 695|回复: 3
收起左侧

[讨论] C#多线程咨询ConcurrentQueue

  [复制链接]
liu8359 发表于 2023-5-10 16:44
C#可以杀掉ConcurrentQueue中的某个进程吗

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

13570648032 发表于 2023-5-10 16:50
面向chartGPT编程  
不好意思,我的前一篇回答可能有些误导。ConcurrentQueue只是一个线程安全的队列,并不能直接对进程进行操作,但是可以将需要杀死的进程的进程ID添加到队列中,再在另一个线程中使用Process类对该进程进行操作,如杀死进程。

以下是一个简单的示例:

```
using System;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Threading;

class Program
{
    static ConcurrentQueue<int> processQueue = new ConcurrentQueue<int>();

    static void Main()
    {
        // 添加进程ID到队列中
        processQueue.Enqueue(1234);

        // 启动后台线程
        Thread thread = new Thread(ProcessQueue);
        thread.IsBackground = true;
        thread.Start();

        // 程序继续执行
        Console.WriteLine("Do something else here...");
    }

    static void ProcessQueue()
    {
        // 不断循环处理队列,直到队列为空
        while (processQueue.TryDequeue(out int processId))
        {
            try
            {
                Process.GetProcessById(processId).Kill();
                Console.WriteLine("Process with ID {0} has been killed.", processId);
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Process with ID {0} does not exist.", processId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to kill process with ID {0}. Error message: {1}.", processId, ex.Message);
            }
        }
    }
}
```

上述代码创建了一个`ConcurrentQueue`,将需要杀死的进程ID添加到队列中,再通过启动一个后台线程来处理队列。后台线程不断循环处理队列,直到队列为空,每次取出队列的第一个进程ID,使用`Process.GetProcessById()`方法获取该进程的`Process`实例并杀死进程。如果进程不存在,则输出相应的提示信息。
 楼主| liu8359 发表于 2023-5-10 17:18
13570648032 发表于 2023-5-10 16:50
面向chartGPT编程  
不好意思,我的前一篇回答可能有些误导。ConcurrentQueue只是一个线程安全的队列,并 ...

谢谢,就是不想加锁,想看看有没有简单的方法
goldli 发表于 2023-5-10 18:48
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-1 09:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表