标签: system.diagnostics

无法使用实例引用访问

虽然我可以这样做:

System.Diagnostics.Process.Start(@"C:\MyFolder\MyProgram.cmd");
Run Code Online (Sandbox Code Playgroud)

我不能这样做:

var process = new System.Diagnostics.Process();
process.Start(@"C:\MyFolder\MyProgram.cmd");
Run Code Online (Sandbox Code Playgroud)

错误:无法使用实例引用访问成员“System.Diagnostics.Process.Start(string)”;用类型名称来限定它。

这背后的原因是什么?谁能解释一下?

提前致谢!

c# system.diagnostics

2
推荐指数
1
解决办法
3248
查看次数

WPF 使用 .Net 3.1 - Process.Start Excel 文件错误:“指定的可执行文件不是此操作系统平台的有效应用程序。”

.xlsx我正在尝试在 WPF .NET Core 3.1 应用程序中打开 Excel 文件 ( )。使用 Winforms,我能够做到

process.start("Resources/test.xlsx")
Run Code Online (Sandbox Code Playgroud)

文件将会打开。

在 WPF 应用程序中执行相同的操作会导致错误

指定的可执行文件不是该操作系统平台的有效应用程序

我使用相同的代码并使用两个应用程序打开相同的文件。只有 Winforms 应用程序可以工作,WPF 会抛出该错误。

.Net 3 中是否有一种新的打开文件方式System.Diagnostics.Process.Start

c# wpf system.diagnostics

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

从C#和.NET自动启动java-web-start应用程序,.WaitForExit(); 不能按预期工作

我正在使用C#应用程序来启动java Web应用程序.我希望我的C#应用​​程序知道用户什么时候关闭java应用程序.我正在使用此代码:

var javaws = File.Exists(@"C:\Program Files\Java\jre6\bin\javaws.exe") ? @"C:\Program Files\Java\jre6\bin\javaws.exe" : @"C:\Program Files (x86)\Java\jre6\bin\javaws.exe";

var psi = new ProcessStartInfo(javaws, String.Format("http://{0}:/appstart.jnlp", hostAddress));

Process.Start(psi).WaitForExit();
Run Code Online (Sandbox Code Playgroud)

这段代码成功启动了java程序,然后WaitForExit()被调用并立即返回.我相信这是因为"javaws"只是启动另一个名为"javaw"的进程,然后"javaws"关闭.有没有办法A)等待所有子进程也完成,或者B)等待特定的子进程?

-

我发现了这个相关的帖子:javaws退出代码真的坏了吗?虽然答案表明1.6.0_23修复了它,但我在Java 1.6.0_23的开发机器上看到完全相同的行为.我现在正在寻找的是一种解决方法,使上述代码按预期工作.我需要启动这个jnlp文件,等待它的执行完成,然后在C#程序中做一些额外的代码.Java应用程序不受我的控制,所以我无法在那里添加功能.

-

对于任何想知道的人,最终解决方案看起来像这样:

var javaws = File.Exists(@"C:\Program Files\Java\jre6\bin\javaws.exe") ? @"C:\Program Files\Java\jre6\bin\javaws.exe" : @"C:\Program Files (x86)\Java\jre6\bin\javaws.exe";
var psi = new ProcessStartInfo(javaws, String.Format("http://{0}:/appstart.jnlp", hostAddress));
Process.Start(psi).WaitForExit();

var javaw = Process.GetProcessesByName("javaw");
javaw.Single(ja => ja.StartTime.Equals(javaw.Max(j => j.StartTime))).WaitForExit();
Run Code Online (Sandbox Code Playgroud)

如果javaw在计算机上运行其他Java Web应用程序,则仅提供等待最近启动的进程的额外好处.

.net c# system.diagnostics java-web-start

1
推荐指数
1
解决办法
3370
查看次数

System.Diagnostics.Trace开销

我有一个应用程序,几乎在它使用的每个方法中都使用Trace.WriteLine.该计划有几个不同的问题.

我想知道的是,如果经常使用System.Diagnostics.Trace.WriteLine有任何开销吗?我正在寻找解决问题的方法,因为我发现它们并且我个人觉得在程序中几乎每一种方法都使用Debug/Trace WriteLine会带来性能成本.

编写此应用程序的程序员很匆忙,还包括一些过去给我们带来麻烦的资产陈述.

.net system.diagnostics c#-2.0

1
推荐指数
1
解决办法
1018
查看次数

缺少System.Diagnostics.Process命名空间

我正在编写一个应用程序,我必须使用System.Diagnostics命名空间使用Process.Start api.我正在使用具有mono-2.10的月光库.但是我收到了这个错误

"无法找到类型或命名空间名称`Process'.您是否缺少using指令或程序集引用?"

我想知道是在月光构建中mscorlib.dll程序集中缺少System.Diagnostics命名空间吗?

c# mono system.diagnostics moonlight

1
推荐指数
1
解决办法
8781
查看次数

获取最近x分钟内计算机的平均CPU使用率

这个问题"如何在C#中获得CPU使用率?" 显示了在.NET中获取计算机当前CPU使用率(%)的一些方法.

由于CPU使用率频繁波动,我认为当前的CPU使用率通常不是计算机繁忙程度的良好指标(例如,用于调度或负载平衡目的).有没有一种有效的方法来获得最后x分钟的平均CPU使用率,例如最后5分钟?

我正在考虑可以由负载平衡或调度模块调用的方法GetAverageCpuUsage(int period).

.net c# system.diagnostics cpu-usage

1
推荐指数
1
解决办法
6062
查看次数

Replace System.Diagnostics into .Net Core 2.0 (C#)

I got method in console app .net 4.6:

using System.Diagnostics;

public static void CPUMonitorTest()
{
   var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
   ...
}
Run Code Online (Sandbox Code Playgroud)

When try to do it into class library .NET Core 2.0 I got problem:

  • the namespace doesn't exisit

What can I do now?

.net c# system.diagnostics .net-core

1
推荐指数
1
解决办法
467
查看次数

即使调用了TraceEvent,也没有创建跟踪文件?

目的

使用System.Diagnostics进行跟踪.虽然我已经使用过log4net和其他日志记录解决方案,但我只对跟踪工作感兴趣System.Diagnostics.

问题

即使我发出的TraceEvent文件没有在任何地方创建.

应用信息

我有一个托管一些WF服务的应用程序.其中一个服务是状态机,其初始状态如下所示:

状态机初始状态

LogMessage自定义活动也非常直截了当.它接收四个基本参数:

LogMessage参数

TraceSource变量定义为:

LogMessage TraceSource变量

然后简单地调用TraceEvent:

LogMessage TraceEvent调用

组态

这种情况的结构TraceSourceTraceListener如下:

  <system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="log" switchValue="All">
        <listeners>
          <add name="file" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               BaseFileName="gsf_workflows.txt"
               DiskSpaceExhaustedBehavior="ThrowException"
               Location="Custom"
               CustomLocation="D:\Log"
               MaxFileSize="81920000"
               LogFileCreationSchedule="LogFileCreationScheduleOption.Daily"/>
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

.net c# logging system.diagnostics workflow-foundation-4

0
推荐指数
1
解决办法
4863
查看次数

诊断,在哪里读取 Trace.TraceInformation?

Trace.AutoFlush = true;
Trace.TraceInformation(string.Format("Try starting: {0}", System.Reflection.Assembly.GetExecutingAssembly().GetName()));
Trace.Flush();
Run Code Online (Sandbox Code Playgroud)

我已阅读:如何检查应用程序事件日志中的错误

但是我找不到任何痕迹!我究竟做错了什么?

.net c# system.diagnostics

-1
推荐指数
1
解决办法
6324
查看次数