ExecuteAsync RestSharp允许backgroundWorker CancellationPending c#的执行。
我是C#,Restsharp和螺纹的新手,所以这是我要做的事情: 我制作了一个程序,可以使我可以将照片上传到Tumblr,并且到目前为止,上传的工作.现在,我需要停止按钮才能工作,我相信这意味着我必须使用ExecuteAsync()而不是Execute(). 我还将代码放在背景工作人员中,这样: private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { if (backgroundWorker1.CancellationPending) { e.Cancel = true; MessageBox.Show("You pressed Cancel."); } else { var restClient = new RestClient("http://tumblr.com/api/write"); fore
10 2024-04-23
编程技术问答社区
如果线程时间过长,如何停止线程?
我有一种情况,我将数据导出到文件,我被要求做的是提供一个取消按钮,如果单击,如果需要太多时间来导出,则会停止导出. 我开始在线程中导出到文件.我尝试在按钮上单击"按钮"上的线程.但是它不起作用. 我在Google上搜索了,我发现不建议使用Abort().但是我还应该选择什么才能实现? 我当前的代码是: private void ExportButtonClick(object param) { IList data = ct.T_UR.ToList(); DataTable dtData = ExportHelper.ToDataTable(data); thread = new Thread(new ThreadStart(()=>ExportHelper.DataTableToCsv(dtData, "ExportFile.csv"))); thread.SetApartmentState(
14 2024-04-23
编程技术问答社区
在C#中杀死远程机器上的一个进程
this 仅有助于杀死流程在本地机器上.如何在远程机器上杀死流程? 解决方案 您可以使用 wmi wmi wmi .或者,如果您不介意使用外部可执行文件,请使用 pskill "> pskill 其他解决方案 我喜欢这个(类似于Mubashar的答案): ManagementScope managementScope = new ManagementScope("\\\\servername\\root\\cimv2"); managementScope.Connect(); ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM Win32_Process Where Name = 'processname'"); ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(managementScope,
12 2024-04-23
编程技术问答社区
如何强制关闭所有的IE进程--在form_unload时使用alert()
我编写了下面的代码以关闭所有IE(Internet Explorer)过程. private void Kill_IE() { Process[] ps = Process.GetProcessesByName("IEXPLORE"); foreach (Process p in ps) { p.Kill(); } } 问题是一些打开的IE Windows显示警报: alert("do not close my web site"); //in JavaScript 或 confirm_box("do you really want to exit?" , "YES|NO"); //in JavaScript 退出之前( unload_form ),我的程序无法关闭那些窗口. 我如何忽略这些警报并强迫关闭这些窗口? 编辑: 下面的方式无法使用令人讨厌的警报关闭该浏览器... 显示黑色控制台:
8 2024-04-22
编程技术问答社区
使用C#来关闭谷歌chrome的隐身窗口。
我想创建一个小程序来关闭Google Incogneto Windows. 我有杀死所有Chrome Windows的代码,但我不确定如何仅隔离隐身窗口 现有代码: Process[] proc = Process.GetProcessesByName("MyApp"); foreach (Process prs in proc) { prs.Kill(); } 解决方案 我玩了一点,但没有完全成功.我能够确定哪个窗户是隐身的,从那里从技术上杀死了该过程. 但是,似乎必须杀死Chrome可执行文件才能关闭实际的窗口,不幸的是,该窗口关闭了所有Chrome Windows. 您也许可以使用Windows句柄获得诸如SendKeys之类的东西来模拟Alt-F4,或者如果我没记错的话,.NET 4.5有一些您可以尝试的其他关闭例程. 尽管如此,这是确定哪些窗口的代码
14 2024-04-22
编程技术问答社区
关闭托管程序的最佳方式
我有启动流程B的过程A. 他们在WCF(IASYNCRESULT APM模式)中进行交流,A是客户b是服务. 当过程死亡时,我需要关闭B. 我正在向过程b发送一个ID,然后他确实: Process.GetProcessById(processId).WaitForExit(); 这很好. 我的问题是,如果A流程死亡,如何正确杀死过程B? 我尝试了所有以下所有内容: Process.GetCurrentProcess().Close(); Process.GetCurrentProcess().Dispose(); Application.Exit(); > its a guiless winform application 唯一起作用的是: Process.GetCurrentProcess().Kill(); 但杀死该过程是否太残酷了? 添加代码: 过程B内部主体: TrackExternalProcess(external
12 2024-04-21
编程技术问答社区
Process.Kill()似乎并没有杀死该进程
我使用Process.Kill()遇到了麻烦.我想我必须误解它的工作原理.这是我的测试功能.我开始了一个长期运行的过程(ping -t),然后在五秒钟后杀死它. 我可以看到ping过程显示出来,但是在我的程序完成后,该过程仍然存在.我必须手动杀死它. Console.WriteLine("Total number of ping processes is {0}", Process.GetProcessesByName("ping").Length); ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe"); Process process = new Process(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.Arguments = "/c ping -t 8.8.8.8"; Conso
8 2024-04-17
编程技术问答社区
退出时出现Powerpoint问题
我有一些C#代码,可以打开PowerPoint幻灯片,刷新图形,然后退出. 这可以正常工作,除非用户已经打开PowerPoint幻灯片,在这种情况下,它将关闭其现有会话(失去他们可能做出的任何更改!)一旦EXE运行. 因此,问题是,如果您在后台打开了PPT,请运行我的EXE,运行以下代码(打开模板,刷新一些图,保存和关闭),在应用程序退出时似乎关闭了每个运行的PPT. 如果我省略ppapp.quit(); PowerPoint.Application ppApp = new PowerPoint.Application(); PowerPoint.Presentation ppPres = ppApp.Presentations.Open(MITemplate, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse
16 2024-04-16
编程技术问答社区
从C关闭最小化/图标化进程#
这是我的问题:我需要从C#程序中关闭已经运行的过程. 问题在于该过程现在以图标运行(最小化任务栏),除非用户至少打开一次(这永远不会在无人看管的机器上发生),否则它永远不会 有一个主窗口. 我有的另一个要求是,应用程序是封闭而不是 .我需要将其写入磁盘的内存缓冲区 - 杀死它会导致数据丢失. 这是我到目前为止尝试的: foreach (Process proc in Process.GetProcesses()) { if (proc.ProcessName.ToLower().StartsWith("myapp")) { if (proc.MainWindowHandle.ToInt32() != 0) { proc.CloseMainWindow();
4 2024-04-16
编程技术问答社区
"优雅地 "杀死一个进程
现在,我正在使用process.kill()杀死一个过程.不过,有没有办法,而不是立即杀死它,我想向该过程发送一条消息,指示它关闭,以便它可以优雅地清理和关闭.基本上,我正在寻找仅在右上角单击红色X的等效物,我相信这确实向应用程序发送了一条消息,要求关闭. 解决方案 如果该过程具有Windows界面(如您所指的红色" X"),则可以尝试其他解决方案 杀人是不优雅的,也许您可​​以发出自杀的过程. 为了发出信号,您有很多选择. sendmessage 命名pipes 命名Mutex 插座 其他解决方案 这取决于您要杀死的过程.如
14 2024-04-14
编程技术问答社区
C# Windows窗体被任务管理器杀死了......有办法运行关闭功能吗?
我怀疑这是可能的.因此,您的应用程序正在运行,用户决定通过任务管理器结束过程.在Process.kill期间是否有一个方法/操作可以保存数据?我怀疑那里有,但我不得不问. 另外,如果用户关闭/重新启动PC(如Windows Update/Manual重新启动),该应用程序将执行什么操作? window_unloaded?在第二个问题上,我想找到一种方法来确保我的应用不会显示为"如果要重新启动,杀死此应用程序"情况并想保存所需的数据. 您的两分钱非常感谢! 解决方案 除非有两个过程,否则不可能做您想做的事;一个监视另一个状态并在终止时做一些事情.看门狗过程可能是 Windows Service应用程序没有GUI. Windows在正常关闭发生时,Windows向每个打开的应用程序发送退出消息.收到消息并退出应用程序后,您可以运行一些代码(通常是管家的内容).不应该花很长时间,否则Windows会自动询问用户是否要杀死应用程序. 强制关闭立即杀死所有过程(没有
12 2024-04-14
编程技术问答社区
如何检测杀戮进程事件
在c#i中使用process.kill()杀死一个过程, 同时在杀死的应用中如何检测此事件? btw:application.applicationexit事件尚未解雇! 解决方案 如果是Winform,则可以捕获事件FormClosing并检查CloseReason: None WindowsShutDown MdiFormClosing UserClosing TaskManagerClosing FormOwnerClosing ApplicationExitCall 其他解决方案 没有简单的方法来实现这一目标,尽管可以使用代码注入,API钩和许多其他技术来实现这一目标,但是我对您的问题是,您真的想去通过大量额外的工作只是为了确保您的应用程序意识到意外终止?您将必须确保您编码/挂钩(或您选择的任何方法),当有人拨打这些调用时,您的应用程序中的一个可能会触发其自己的事件,以表明它应该终止您的应用程序,以终止您的应用程序.处理这样的事件并准备退出.本质上,您也
14 2024-04-14
编程技术问答社区
在Vista/windows 7中用C#编程杀死一个进程
我想在Vista/Windows 7中以编程方式杀死一个过程(我不确定两者之间的UAC实现是否存在重大问题以有所作为). 现在,我的代码看起来像: if(killProcess){ System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("MyProcessName"); // Before starting the new process make sure no other MyProcessName is running. foreach (System.Diagnostics.Process p in process) { p.Kill(); } myProcess = System.Diagnostics.Process.Start(p
14 2024-04-13
编程技术问答社区
C# 进程杀戮
我需要在C#中编写一个只需启动的程序,杀死一个应该杀死并结束自身的过程\ exe. 我需要杀死的过程是另一个C#应用程序,因此它是本地用户过程,我知道 exe 的路径. 解决方案 首先搜索要杀死的过程的所有过程,而不是杀死它. Process[] runningProcesses = Process.GetProcesses(); foreach (Process process in runningProcesses) { // now check the modules of the process foreach (ProcessModule module in process.Modules) { if (module.FileName.Equals("MyProcess.exe")) { process.Kill(); } } } 其他解决方案 查看
16 2024-04-12
编程技术问答社区
检测控制台应用程序何时关闭/被杀死?
我想为我的控制台应用程序进行安全出口,该应用程序将使用Mono在Linux上运行,但找不到将信号发送给它或用户按CTRL+C. 在Windows上有内核函数setConsolectrlhandler可以完成工作,但在单声道上不起作用. 我如何在控制台申请上进行安全退出的关闭活动? 解决方案 您需要使用Mono.UnixSignal,有一个很好的样本,乔纳森·普赖尔(Jonathan Pryor): http://www.jprl.com/blog/archive/development/mono/2008/feb-08.html 单页上还有一个较短的示例: faq/fiq/fielf : // Catch SIGINT and SIGUSR1 UnixSignal[] signals = new UnixSignal [] { new UnixSignal (Mono.Unix.Native.Signum.SIGINT), new UnixSi
10 2024-04-12
编程技术问答社区
如何使用Vb.NET或C#杀死一个进程?
我有一个场景,我必须检查用户是否已经打开Microsoft Word.如果他有,那么我必须杀死winword.exe流程并继续执行我的代码. 是否有人使用vb.net或c#? 杀死过程的任何直接代码 解决方案 您将需要使用 system.diagerostics.diagnostics.proccess.proccess.getProcessesbessebessbyname ./p> 示例已经在这里发布了,但是我发现非 - .exe版本效果更好,所以类似: foreach ( Process p in System.Diagnostics.Process.GetProcessesByName("winword") ) { try { p.Kill(); p.WaitForExit(); // possibly with a timeout } catch ( Win32Exception winExce
14 2024-04-10
编程技术问答社区
无法理解��杀死�� linux程序
这是一个非常小的"杀死"相关程序.该程序正在执行,但无法弄清楚代码.可以让我理解下面的代码. int main(int argc ,char **argv) { if(argc
14 2024-04-10
编程技术问答社区
在Windows中杀死一个 "关键进程"(C/C++)。
杀死关键过程的最佳方法是什么? 解决方案 这对于某种原因至关重要,因此您可能根本不应该杀死它.最好的方法是关闭盒子,以免将其留在危险状态. 如果您选择忽略我的警告,其他解决方案 其他解决方案 是的,做亚当建议的事情.然后观看当您的机器BluesCreens时,因为您刚刚终止了一个关键过程:)(顺便说一句,明确:Adam的建议是100%准确的,我根本不打算批评它). > 您为什么要这样做?它们称为关键过程是有原因的.
12 2024-04-10
编程技术问答社区
信号处理程序中奇怪的睡眠行为
希望你做得很好 我想在C中编写一个无数循环的程序,并在不使用任何预定义环的情况下每3秒打印一次PID和PPID(否暂时..) 问题是,当我在信号处理程序内使用睡眠系统调用时,它不会打印任何东西,但是当我评论它时,它会循环循环并打印我想要的东西. 这是代码 #include #include #include #include #include void handle1(int signum){ //sleep(3); // when i remove the sleep it loop infinitly and prints printf("pid=%d ppid=%d",getpid(),getppid()); if(signum==SIGUSR1){ kill(getpid(),SIGUSR1); } }
12 2024-04-09
编程技术问答社区
在C语言中,linux,关于循环中的kill信号和sleep()。
我在Mac OS上运行C程序.我的程序的一部分如下.此代码在Sigint信号上运行良好,但无法在Sigkill信号上使用. void sigkill(int sig){ /*some code neglected*/ exit(0); } void sigint(int sig){ flag=1; } void alive(void) { signal(SIGINT, sigint); signal(SIGKILL, sigkill); alarm(10); while(1){ //printf("%d\n",flag); sleep(1); if(flag==1){ printf("no\n"); flag=0; } } } 我有四个问题: 首先我没有写sleep(1),它可以输入函数sigin
10 2024-04-09
编程技术问答社区