作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
API 不正式支持线程(见下文)或关闭事件文档的方法。也就是说,关闭事件文档的一种解决方法是调用...
SendKeys.SendWait("^{F4}");
...来自一个单独的线程。这很好用,除了我需要循环打开和关闭几个文档。如果我在线程之后放置任何代码,它将在关闭前一个文档之前运行它。我已经尝试了许多标准的线程回调方法,包括...
Task.Factory.StartNew(() =>
ThreadPool.QueueUserWorkItem(new WaitCallback
AutoResetEvent.WaitOne()
运气不好。而 Thread.Sleep() 只是阻止了错误/崩溃。有没有人有任何想法。
“Revit 的内部结构仅在几个选定的孤立位置使用多处理。这些位置目前均不包含 Revit API 中的代码或其中的任何部分。因此,Autodesk 不建议从中调用 Revit API在同时执行的并行线程中。Revit API 的某些部分可能足够隔离,能够在测试环境中从此类线程代码中成功执行;这不应被视为保证相同的源代码将适用于任何模型或情况的函数,或者 Revit 中的 future 更改不会导致此代码停止运行。”
public void OpenFile()
{
for (int i = 0; i < 3; i++)
{
uiApp.OpenAndActivateDocument(TargetPath(i));
ThreadPool.QueueUserWorkItem(CloseDocProc);
//any code here at all opens the next doc without closing the last
}
}
public void CloseDocProc(object stateInfo)
{
SendKeys.SendWait("^{F4}");
//can run code here
}
最佳答案
正如他们所说,问题出在线程上。使用任何回调方法,它都会在那个时候卡住。而且你只能在线程中做有限的事情,它不会让我打开一个文件,无论如何!
答案是使用单线程计时器。
System.Windows.Forms.Timer;
每 10 秒左右调用我的 Open() 方法,并在计数器达到特定点时停止计时器并运行最后一位代码。
关于c# - 令人困惑的 API 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044298/
很抱歉新手的问题,但是: 我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉
我是一名优秀的程序员,十分优秀!