草庐IT

invoke_main

全部标签

c# - 等效于 Dispatcher.Invoke 或 Dispatcher.RunAsync 的可移植类库

在.NET、Windows8和WindowsPhone7中,我有类似这样的代码:publicstaticvoidInvokeIfRequired(thisDispatcherdispatcher,Actionaction){if(dispatcher.CheckAccess()){action();}else{dispatcher.Invoke(action);}}我将如何在可移植类库中做一些事情?最好有一个与平台无关的实现。我的想法是使用WP7中不可用但肯定会很快的TPL。//PortableDispatchermustbecreatedontheUIthreadandthenmad

c# - Dispatcher.Invoke with anonymous delegate 在 Silverlight 中有效但在 WPF 中无效

在Silverlight4中,我有一个自定义服务类,它有一个异步的Completed事件。在Completed事件中,我获取返回的数据并通过如下方式调用填充方法:privatevoidservice_Completed(objectsender,CompletedEventArgsargs){Dispatcher.BeginInvoke(()=>populateInbox(args.Jobs));}privatevoidpopulateInbox(Listjobs){inbox.DataContext=jobs;}BeginInvoke在SL4中工作,但是当我将它移植到WPF时,出现以

c# - "Compile with/main to specify the type that contains the entry point."

根据下面的代码,我收到以下消息。我相当确定我得到它的“原因”,我只是不知道如何重新排列代码以移动/删除/替换导致错误的语句之一。“使用/main编译以指定包含入口点的类型。”"staticvoidMain(string[]args)"下有一堆代码,我从http://support.microsoft.com/kb/816112为了从自动递增中获取ID,所以当其余代码填充Access数据库时,我可以让它自动递增。任何帮助表示赞赏。也欢迎使用更简单的代码获得结果的建议!namespaceWindowsFormsApplication1{publicpartialclassForm1:For

c# - 为什么在 main() 退出之前调用 Dispose()?

我的.net服务通过在Main()循环退出之前的finallyblock中调用resourceName.Dispose()来清理其所有非托管资源。我真的必须这样做吗?我认为我不能因为进程正在结束而泄漏任何资源的想法是否正确?Windows将关闭所有不再使用的句柄,对吗? 最佳答案 实现IDisposable的对象可以封装的资源类型没有限制。IDisposable对象封装的绝大部分资源会在进程关闭时被操作系统清理,但有些程序可能会使用操作系统不知道的资源。例如,需要底层数据库不支持的锁定模式的数据库应用程序可能会使用一个或多个表来跟踪

c# - 在 Pipeline.Invoke 抛出后在 C# 中捕获 Powershell 输出

我正在从C#应用程序运行Powershell测试脚本。由于错误的cmdlet导致pipe.Invoke()引发异常,脚本可能会失败。我能够捕获我需要的有关异常的所有信息,但我希望能够显示脚本到那时为止的输出。我没有任何运气,因为在抛出异常时结果似乎为空。有什么我想念的吗?谢谢!m_Runspace=RunspaceFactory.CreateRunspace();m_Runspace.Open();Pipelinepipe=m_Runspace.CreatePipeline();pipe.Commands.AddScript(File.ReadAllText(ScriptFile));

c# - 如何从静态 main() 调用方法?

我有一个带有Main方法和函数的控制台应用程序。如何从Main方法调用函数?我知道下面的代码行不通staticvoidMain(string[]args){stringbtchid=GetCommandLine();//GetCommandlineisamthodwhichreturnsastring} 最佳答案 还有varp=newProgram();stringbtchid=p.GetCommandLine(); 关于c#-如何从静态main()调用方法?,我们在StackOverf

c# - 通过 P/Invoke 调用 GetGUIThreadInfo

我想将键盘输入发送到另一个进程中的窗口,而不将该窗口置于前台。我可以使用PostMessage伪造WM_KEYDOWN和WM_KEYUP;我只需要知道哪个窗口句柄应该接收键盘输入——即类似GetFocus的东西,但对于另一个非事件应用程序。GetGUIThreadInfoAPI看起来很有前途——它为另一个应用程序返回一个hwndFocus。但是我没有运气让它在我的64位操作系统上从C#运行。我已经复制(然后进一步调整)来自pinvoke.net的声明,但我得到的只是一个通用错误代码(下面有更多详细信息)。我在调用GetGUIThreadInfo之前设置了cbSize,因此我避免了最明显

c# - P/Invoke 到 Mono 上动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库。在我的类的静态构造函数中,检测到平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于anotherstackoverflowanswer中给出的代码。.为了在库不在PATH中时可以找到它,我在将它保存到临时文件后显式加载它。在Windows上,这适用于来自kernel32.dll的LoadLibrary。我正尝试在Linux上对dlopen执行相同的操作,但在稍后加载P/Invoke方法时出现了DllNotFoundException。我已验证库“libindexfile.so”已成功保存到临时目录,并且对dlopen的调用

c# - 将 .NET P/Invoke 代码组织到 Win32 API 的最佳实践

我正在.NET中重构一个庞大而复杂的代码库,它大量使用P/InvoketoWin32API。项目的结构不是最好的,我发现到处都是DllImport语句,经常重复相同的功能,并且还以多种方式声明:导入指令和方法有时声明为公共(public)的,有时声明为私有(private)的,有时声明为静态的,有时声明为实例方法。我担心重构可能会产生意想不到的后果,但这可能是不可避免的。是否有我可以遵循的记录在案的最佳做法可以帮助我解决问题?我坚持要组织一个静态/共享的Win32P/InvokeAPI类,在一个文件中列出所有这些方法和关联的常量...编辑user32DLL有超过70个导入.(代码库由2

C#如何自己命名Main()方法?

小问题,有没有办法随心所欲地调用main方法?或者它是否必须被称为“Main()”? 最佳答案 请注意,这是C#约定,而不是.NET运行时约定。您可以在IL中随意命名您的方法:.moduleMane.exe.subsystem3.corflags9.assemblyexternmscorlib{.publickeytoken=(B77A5C561934E089).ver2:0:0:0}.assemblyMane{.custominstancevoid[mscorlib]System.Runtime.InteropServices.C