草庐IT

【JavaEE】进程和线程

全部标签

c# - 为什么 Microsoft.Office.Interop.Excel.Application.Quit() 让后台进程继续运行?

以下代码使MicrosoftExcel后台进程继续运行,直到我的程序退出:varexcelApplication=newApplication();varworkbooks=excelApplication.Workbooks;varworkbook=excelApplication.Workbooks.Open(file.FullName);workbook.Close();excelApplication.Workbooks.Close();excelApplication.Quit();Marshal.ReleaseComObject(workbook);Marshal.Rele

c# - 如何在进程等待完成时显示加载控件?

我决定使用这个第三方组件在我的windows窗体中做一个简单的加载控件。http://www.codeproject.com/Articles/14841/How-to-write-a-loading-circle-animation-in-NET这在打开和关闭单个请求(每次一个)中将属性“Active”更改为true或false时工作正常。问题是当一个进程正在等待服务时,我假装在进程启动之前激活loadingControl,并在我“认为”进程必须完成时关闭。当我这样做时,图像加载显示为静态图像。(没有动画)。很抱歉这个问题,我是C#的新手。但我认为我需要使用Threads或类似的东西

c# - 线程完成时通知,不锁定调用线程

我正在开发基于NET3.5构建的遗留应用程序。这是我无法改变的约束。我需要执行第二个线程来运行长时间运行的任务而不锁定UI。当线程完成时,我需要以某种方式执行回调。现在我尝试了这个伪代码:Thread_thread=newThread(myLongRunningTask){IsBackground=True};_tread.Start();//waituntilit'sdone_thread.Join();//executefinalizer不锁定UI的第二个选项如下:Thread_thread=newThread(myLongRunningTask){IsBackground=Tru

C#检查进程是否存在然后关闭它

我试图在C#中关闭一个进程,但我如何检查它是否先打开?用户要求此功能,其中一些用户仍将使用其他进程的关闭按钮。所以,现在工作正常:Process.GetProcessesByName("ProcessName")[0].CloseMainWindow();现在,我如何首先检查它是否存在,这是行不通的:if(Process.GetProcessesByName("ProcessName")[0]!=null){...} 最佳答案 尝试这样做以避免进程在第一次调用GetProcessesByName后关闭的竞争条件:Process[]p

c# - 我的 winform 应用程序关闭时如何停止线程

我有一个单例,它有一个正在运行的线程,用于从服务器获取记录。但是当我停止我的winform应用程序时,线程继续运行。我试图在我的单例中创建一个析构函数来中止正在运行的线程,但它对线程没有任何影响——我知道正在调用析构函数。我正在寻找有关在我的应用程序关闭时应该如何关闭线程的建议。谢谢C#、.net2 最佳答案 线程可以是:前台:将使您的程序保持事件状态直到完成。背景:当您关闭应用程序时将终止。当你创建一个线程时,它默认是一个前台线程。你可以这样改变:Threadt=newThread(myAction);t.IsBackground

c# - 当由一组信用下的计划任务启动的进程在另一组信用下运行另一个程序时,Windows 是否有限制

所以我有一个简单的例子,我有一个应用程序A,它有一些硬编码的用户X的凭据,一个本地管理员,然后它使用硬编码的绝对路径使用这些凭据启动应用程序B。A和B以及dotnet控制台应用程序,但是它们不与控制台交互,只是将信息写入文件。当我以交互方式运行A时(在我的Creds下,通过双击或通过CMD.exe或交互式PowerShellsession,它运行良好。成功调用B当我通过计划任务运行它时,A被creds控制,并使用用户X调用B,Process.Start(mystartinfo)的错误代码是-1073741502或十六进制的0xC0000142,表示“应用程序未能正确初始化”但是,如果我

C#:重定向已在运行的进程的标准输出

我一直很难获得“子进程”的输出(一个由我通过c#System.Diagnostics.Process监视的黑盒进程在内部启动)我采纳了我之前帖子的回答中给出的建议:here.在那里你可以找到我所经历的细节。此时,虽然我能够找到由process1.exe生成的ssh进程,但我正在监视它。我无法将输出重定向到我的C#程序,因为它是一个“已经在运行的进程”,并且不是直接从C#启动的。看起来,您在System.Diagnostics.Process对象上设置的所有属性,只有在您从C#应用程序显式启动该进程时才会生效;如果其他一些“非托管进程”启动了该进程,则设置此重定向无效,因为该进程已经由未

c# - 托管 clr 并捕获线程异常

我正在尝试编写一个可以加载托管插件的插件系统。如果有任何异常,主机应该能够卸载插件。对于我的poc,我在C#中有一个示例代码库,它会抛出这样的异常...publicstaticintStartUp(stringarguments){Console.WriteLine("Startedexceptionthrowerwithargs{0}",arguments);ThreadworkerThread=newThread(()=>{Console.WriteLine("Startingathread,doingsomeimportantwork");Thread.Sleep(1000);t

c# - 从 Windows 服务创建交互式提升进程并显示给登录用户

我有一个在用户登录时生成WPF应用程序进程的服务。但出于某种原因,WPF应用程序在创建后大约10分钟就被终止了?立即终止,事件日志中未发现任何痕迹,WPF应用程序中也未调用任何正常的关闭/退出事件。事实上,当终止发生时,Windows7似乎挂起一秒钟,鼠标变得无响应,然后在短暂的延迟后执行鼠标手势(当它正常化时,但现在缺少创建的进程)。什么时候publicpartialclassService1:ServiceBase{publicService1(){InitializeComponent();CanHandleSessionChangeEvent=true;}protectedov

c# - 要使用多少线程?

我知道有一些现有的问题,它们提供了对事物的非常好的总体看法。我希望获得有关的C#/VB.Net方面的一些详细信息实际执行(不是哲学)其中一些观点。我的特殊情况我有一个WCF服务,其中包括接收文件。在服务的大部分时间里,这个特定的区域实际上只是坐在那里什么都不做——当工作来临时,它会以大不相同的数量到达。对于接收到的每个文件(最多每秒数千个),服务需要处理文件1-10秒(每个),具体取决于许多其他服务、本地资源和网络IO等待时间。为了帮助处理这些突发工作负载的服务,我实现了一个队列系统。每秒收到的数千个文件被放入队列中。Controller根据队列的大小计算要使用的线程数,直到达到“峰值