问题标签 [system.diagnostics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何中断 IO 绑定线程
我正在打开一个 System.Diagnostic.Process 以从进程中读取标准输出,并且我希望能够在经过一定时间后中断它。
这不起作用,因为线程在 ReadToEnd() 方法中。我试图从主线程关闭流,希望 EOF 是 Read 方法,但这也不起作用。
c# - 在 Windows 7 下启动 System.Diagnostics.Process 时出现问题
我正在尝试从 .NET 3.51 启动一个应用程序(操作系统、我的应用程序和我要启动的应用程序都是 32 位)。
启动进程的代码用于其他应用程序,但有一个让我们头疼。如果我们“双击”应用程序的图标,它会按预期工作,这意味着它可以作为计算机中的应用程序正常工作。直接双击.exe,也可以。
操作系统为 Windows 7 32Bits(家庭版和/或专业版)。
我们的 .NET 应用程序使用 x86 编译以避免出现问题。
启动“进程”的代码位于我们制作的 DLL(也是 32 位)中,基本上它是一个简单的 DLL,它包含一些“通用代码”、通用方法、函数和我们在整个代码中使用的东西。其中一种方法如下所示:
我不知道这个方法是谁写的,但它已经在不同的应用程序上工作了大约六年,因此我认为它“没问题”。但是,我们有一个客户的软件在通过该参数时不会启动。
论据是:
- process是一个 System.Diagnostics.Process 使用简单的“new Process();”创建的</li>
- path是 .exe “c:/path/to/my.exe” 的完整路径。
- enableRaisingEvents为假
- windowStyle已最大化(但已尝试其他)。
它给出了一个糟糕的消息框……我很高兴地把它永生了。它是西班牙语,但翻译应该很容易:
它说:
应用程序错误 程序 (0x0eedfade) 发生意外异常...
谷歌搜索 0x0eedfade 会给出看起来很吓人的奇怪结果,但事实是,如果我转到我尝试启动的 .exe 并双击它,它会完美运行。
为了记录:如果我尝试启动其他东西(例如:Notepad.exe、Adobe Acrobat Reader),它可以工作,但Firefox 不会打开并且不会显示错误。
这种“有些工作,有些不工作”的行为让我相信,Windows 7 安全机制或类似的安全机制可能存在我不知道的问题。
我错过了什么或做错了什么?
更新:好的;我得到了软件的副本。这是一个凌乱的软件,但它的工作原理。现在我可以调试了,我看到程序在使用我的FireUpProcess
方法启动时会出错。
正如建议的那样,我添加了 WorkingDirectory 代码,但这里是代码:
这意味着,“程序无法启动,因为 ddip.dll 丢失……尝试重新安装 bla bla”。
问题是,如果我从命令行执行相同的@path,程序会完美打开:
这将打开程序。如果我单击位于“程序”菜单中的“快捷方式”,也会发生同样的情况。该快捷方式中没有任何参数,它是对可执行文件的简单调用。
所以现在的问题是:我的代码和其他方法有什么区别?
一定有一些不同的东西导致我的过程无法启动。
有任何想法吗?
更新和解决方案
我通过使用以下提供的答案之一使其工作。事实证明,没有人直接向我指出解决方案,但他们都在这里和那里给了我很好的想法。
我在我们的应用程序中添加了一个应用程序清单(应该从 vista 时代就有它,不知道为什么它没有放在第一位)。我使用 VStudio 2008 添加文件 -> 应用程序清单添加的应用程序清单。
在其中,我确保我们有这个:
我们不需要管理员或类似的东西,但显然 Vista/7 需要知道它。
添加之后,该过程将正确启动。
注意:默认情况下 UseShellExecute 为true(如某些人所建议的那样),如果这是您想要的,您必须明确将其设置为 false。
c# - 在我的 C# Win 应用程序中打开 Windows 的计算器?
我知道我可以使用以下代码打开 Windows 计算器:
但我想在我的 C# Win 应用程序中打开它,即:我不想在独立窗口中打开它,我想在我的窗口中打开它。
我该怎么做 ?
azure - Windows azure 中的 System.Diagnostics.Trace.WriteLine
当我在 Azure 开发中使用 System.Diagnostics.Trace.WriteLine 时,该信息存储了多长时间。当工作者角色或网络角色被回收时,它会被清除吗?
c# - 如何在 C# 中为每个正在运行的进程获取 cpu 使用率
我使用 System.Diagnostics.Process.GetProcesses() 来获取进程列表。我为每个进程找到了 TotalProcessorTime 属性 - 它是 TimeSpan。
但是如何获得 CPU 使用率的相对值,即我需要每个正在运行的进程占总 CPU 使用率的百分比。
c# - 后台线程上的 TextWriterTraceListener
我有一个第 3 方组件,它使用 TraceSwitch 功能允许我输出内部发生的一些跟踪。不幸的是,在详细模式下运行开关,使用 TextWriterTraceListener 作为消费者(输出到文件)会大大降低应用程序的速度。
跟踪数据是否立即写入并不重要,那么有没有办法将数据写入较低优先级的线程?也许是一个任务?
编辑
经过进一步调查,似乎只是在不连接侦听器的情况下打开开关会导致减速。我将获得组件提供者的控制。
不过,听到答案仍然很有趣。
c# - TextWriterTraceListener 不起作用
配置文件:
编码:
我可以在 cosole 窗口中看到文本。并且文件已创建,但它是空的。我记得某处有类似 Autoflush 属性的东西吗?
.net - 代码检测
它对检测代码有多重要,代码检测是否被视为代码的质量属性???
我所说的检测是指放置用于诊断的代码,例如跟踪语句,并在必要时使用性能计数器。
c# - System.Debug 和 System.Threading 参考错误
错误消息“ThreadState”是“System.Threading.ThreadState”和“System.Diagnostics.ThreadState”之间的模糊引用
我正在尝试调试 C# Class .cs 并使用 Debug.Writeline 进行代码调试...
但是上面出现错误!!
还有另一种调试 C# 代码类的方法吗?我尝试了 Console.Writeline() 和 Alert.Show 和 Message.Show 并没有找到另一种有效的方法来调试 Web 应用程序 C# 类或绕过模棱两可的参考!
c# - 如何使用 Lazy 创建可预测的输出
我正在开发一些内部日志框架,为了提高性能,懒惰地获取一个StackFrame
. 我想用它StackFrame
来获得我的日志框架之外的第一个方法。
我最初的想法是这样的:
但是当你交换这些行时:
结果是不可预测的,因为调用堆栈已更改。无论如何,通过闭包获得本地范围/框架的钩子,同时保持懒惰。
我能想到的唯一解决方案是单步执行 StackTrace,直到我用未知方法检测到第一帧。
我真的希望有更好的解决方案。