gpt4 book ai didi

C# 停止 TCP 文件传输

转载 作者:可可西里 更新时间:2023-11-01 02:53:05 26 4
gpt4 key购买 nike

我正在编写简单的 TCP 文件传输程序,在接收方使用 TcpListener,在发送方使用 TcpClient。我有 2 个选项 - 同步或异步。如果我使用同步,我必须将发送/接收方法放入 BackgroundWorker,以防止卡住 GUI 线程。异步版本没有问题...

我的问题是,如何停止运行文件传输?

在同步版本中,我尝试使用 BackgroundWorker.CancelAsync() 方法,并在每个循环迭代中检查 BackgroundWorker.CancellationPending 属性,但它似乎不起作用(CancelAsync 可能未设置 CancellationPending 属性):(

在异步版本中,我尝试使用 volatile 变量 Indicator 并在每个 Callback 中检查其值。问题是,当我在 Stop() 方法中更改它的值时,比我在回调中检查它时,回调仍然读取它以前的值:(

最佳答案

CancelASync 应该可以工作;你设置了吗:

backgroundWorker.WorkerSupportsCancellation = true:

关于C# 停止 TCP 文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2128800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com