c 多线程问题,如何终止特定线程

发布于 科技 2024-04-11
10个回答
  1. 匿名用户2024-01-27

    执行此操作的简单方法是终止当前线程。

    当然,您不仅需要终止当前线程,还需要执行其他业务并弹出表单。 然后需要一个新的委托,在**过程中调用这个委托来终止现成的,以便在线程终止后执行其他服务。

    大概**,我会写一个粗略的:

    public delegate void stopthreaddelegate(thread t);

    static void stopthread(thread t)

    关闭线程。 开始一个新表单。

    public static void main()

    new thread(delegate(object data)

    这是您的执行逻辑。

    当您要执行退出线程时。

    dynamic d = data;

    var d = stopthreaddelegate)data;不。

    d(;)start(new stopthreaddelegate(stopthread));

  2. 匿名用户2024-01-26

    在某些情况下,多线程可以提高效率并加快程序的运行速度。 有时需要同时运行,比如在游戏中同时运行和射击,这需要多线程。 通过更多的练习,您可以掌握拉动。

  3. 匿名用户2024-01-25

    异步多线程内存释放主要依靠自身,c的垃圾机制是只有在程序段运行时,垃圾机制才会对程序打开的内存进行垃圾处理。 只要客户端没有断开连接,你的线程就会继续运行,除非客户端断开连接,线程的生命周期结束,垃圾机制会产生线程占用的内存。 如果客户端没有断开连接,则应注意执行**进程以清除垃圾的过程。

    通常,由于引用内存的循环创建,大多数内存会增加,因此请密切关注线程中每个引用类型的创建。 至于发布,一个是让系统在**过程**结束时自动**,另一个是手动**。 但我建议您指定数据存储的大小。

    数据存储应是一个过程,即数据存储通常接受基础数据,同时释放过期的数据。 例如,如果创建 listdatas = new list(),则可以将最大记录数控制为 100,则当“100”时,将删除多余的记录。

    希望对你有所帮助。

  4. 匿名用户2024-01-24

    .净垃圾是自动的,当机器内存有压力时会自动触发。 没有人知道什么时候。

    .net 的开发人员不主张程序员将其用于自己的垃圾**。

    如果你必须使用它,你需要它两次;

    第一次,查找可以成为**的资源,并将它们放在“准备成为**”队列中。

    第二次施法时,此“准备成为**”队列的所有元素。

    如果内存继续上升,您可以使用它来查看您的**是否导致了内存泄漏。

    例如,哪些带有 idisposable 的类在打开后没有关闭或处理,这是记忆力减退的原因之一。

    socket 类本身也实现了 iDisposable,所以使用时要注意是否有 close()

    或者使用 (using socket socket = new socket())。

    包含在 using 语句中的部件。 NET将自动处置,而不会造成潜在的记忆损失。

    记忆丧失的另一个可能原因是事件与其他方法相关联,但在不使用后不会取消绑定。

    对不起,我没有很好地表达)

    例如,loaded +=onloaded;

    private void onloaded (object sender, routedeventargs e)

    以下习惯也可以在一定程度上减少内存泄漏。

    loaded -=onloaded;

    但并非所有事件绑定都会导致内存泄漏。

  5. 匿名用户2024-01-23

    如果不想更改设计,请使用 manualResetEvent 对象,每次线程创建子线程时,都创建此对象,并确保所有线程都执行完毕,然后放开阻塞。 (可以使用计数方法开始记录需要创建的线程数,然后在每个子线程完成变量值 1 时记录一个变量(原子类型),如果变量值 == 线程数,则此对象 set())。

    但是这种效率真的很难说,多线程的目的是为了更快,它可以同时处理事情,如果你这样设计,你就走不快。

    设置全局变量,这是不可取的,在多线程中,如果这样的线程只有一层,可以控制,如果层数较多,则加减,根本无法控制。 最后,我不知道如何分析问题,在多线程分析问题时,有些问题可以重现,有些问题可以重现十次。

    我也在做这方面的研究,所以当我有时间的时候,我可以和你谈谈,看看你的设计。

  6. 匿名用户2024-01-22

    使用线程池等待

    或者使用线程联接来满足您的要求。

  7. 匿名用户2024-01-21

    让一个全局集合变量。 每次打开子线程时,都会将一段数据添加到集合中。

    当每个子线程完成时删除一段数据,检查集合中的数据。 如果没有数据,可以通知主线程,所有线程都完成。

  8. 匿名用户2024-01-20

    向线程添加一个 bool 变量,在线程完成时分配一个 bool 值,并在更改 bool 类型时确定它是否完成。

  9. 匿名用户2024-01-19

    改变连接机制,提供以下思维模式:

    1.LAN模式。

    1.服务器启动监听端口;

    2.客户端向服务发送连接请求,同时创建一个随机监听端口并监听。

    3、服务器收到连接请求后,创建连接,验证基本消息,进行验证,读取消息协议中客户端的IP和随机端口,向客户端发送连接请求,释放服务器监听器创建的连接,以便处理下一个监听器;

    4. 客户端与服务器重新连接以进行特定通信。

    2.广域网模式。

    1.服务器启动监听端口;

    2. 客户端向服务发送连接请求;

    3.服务器收到连接请求后,创建连接,验证基本消息,通过验证,创建随机监听端口,将端口信息返回给客户端,释放服务器监听器创建的连接,以便处理下一个监听器。

    4、客户端接收服务器返回的端口信息,然后连接到服务器;

    4. 客户端与服务器重新连接以进行特定通信。

  10. 匿名用户2024-01-18

    由于创建和切换线程的开销,多线程不会提高程序的执行速度,反而会降低速度,但对于IO操作频繁的程序,多线程可以有效地并发。

    对于具有不同任务的程序,请考虑对每个任务使用一个线程。 这样的程序被设计为比单线程程序更清晰,单线程程序可以执行所有操作,例如生产和消费者问题。

    在实际开发中,需要考虑是否在特定场景下使用多线程技术进行性能优化。

    也就是说,线程和效率不是直接成正比的。

相关回答
12个回答2024-04-11

限制限制数据共享。 将变量数据限制为单个线程并避免争用。 其核心思想是线程之间不共享可变数据类型。 >>>More

11个回答2024-04-11

简单的线程执行方法。

此方法是静态的。 >>>More

4个回答2024-04-11

说到阻塞和非阻塞的概念,让我们了解一下同步和异步的概念。 >>>More

5个回答2024-04-11

1.这是由系统对象**机制决定的,可以调用系统gc命令, 2.Set h=null 可以作为发布,没有内存泄漏,但至于发布,真正的发布是由系统决定的。

9个回答2024-04-11

在C语言中读取文件的具体步骤如下:

我们需要准备的材料有:计算机、C语言。 >>>More