相关疑难解决方法(0)

什么是消息泵?

这个帖子(大约一年前发布)中,讨论了在非交互式会话中运行Word时可能遇到的问题.那里给出的(非常强烈的)建议不会这样做.在一篇文章中,它表示"Office API都假设您在桌面上的交互式会话中运行Office,具有监视器,键盘和鼠标,最重要的是消息泵." 我不确定那是什么.(我用C#编程只用了一年左右;我的其他编程经验主要是使用ColdFusion.)

更新:

我的程序运行大量RTF文件,以提取用于构建医疗报告编号的两条信息.我没有尝试弄清楚RTF中的格式化指令是如何工作的,而是决定只在Word中打开它们并从那里拉出文本(而不是实际启动GUI).有时,程序在处理一个文件的中间打嗝,并留下了一个字线打开该文件附有(我仍然要弄清楚如何关闭一个向下).当我重新运行程序时,我当然得到一个通知,说有一个线程正在使用该文件,我是否想要打开一个只读副本?当我说"是"时,Word GUI突然突然冒出来并开始处理文件.我想知道为什么会这样; 但看起来可能一旦弹出对话框,消息泵开始将主GUI推送到Windows?

c# winapi message-pump winmain

95
推荐指数
5
解决办法
4万
查看次数

如何实现"真正的"异步

在他对这个问题的回答中,Stephen Cleary提到了"假"异步和"真实"异步.

有一种更简单的方法来安排线程池的工作:Task.Run.

真正的异步是不可能的,因为您必须使用阻塞方法.所以,你所能做的只是一个解决方法 - 伪异步,即阻塞线程池线程.

那怎么可能实现真正的异步,就像各种方法一样System.Threading.Tasks.Task?如果你挖得足够深入,是不是所有"真正的异步"方法只是阻止其他线程上的操作?

.net c# asynchronous task-parallel-library async-await

4
推荐指数
2
解决办法
946
查看次数