草庐IT

c# - 如何优雅地处理 winforms 应用程序中的休眠/ sleep 模式?

我正在使用C#在.net中编写Windows窗体应用程序。我遇到了一个问题,如果我的程序在计算机进入休眠和/或休眠状态时运行(我现在不确定是哪一个或两个导致问题),当机器再次醒来程序只是挂起。退出它的唯一方法是从任务管理器中终止进程。出于显而易见的原因,这不是我希望程序运行的方式。即使我只是在程序进入这些状态时关闭程序,那也很好,但我不太确定如何执行此操作,或者是否有更优雅的方式来处理此问题。 最佳答案 你需要:usingMicrosoft.Win32;这是代码:voidSystemEvents_PowerModeChanged(o

c# - 冒泡事件的首选方式是什么?

我有三个对象ObjectA有一个ObjectB,ObjectB有一个ObjectC。当ObjectC触发一个事件时,我需要ObjectA知道它,所以这就是我所做的......publicdelegatevoidEventFiredEventHandler();publicclassObjectA{ObjectBobjB;publicObjectA(){objB=newObjectB();objB.EventFired+=newEventFiredEventHandler(objB_EventFired);}privatevoidobjB_EventFired(){//Handlethe

c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc)

我使用Type.GetMethods(BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)检索给定类型的方法数组。问题是返回的MethodInfo可能包含编译器生成的方法,而我不想要这些方法。例如:propertyboolEnabled{get;将得到boolget_Enabled()事件SomethingChanged会得到add_SomethingChanged(事件处理程序)和remove_SomethingChanged(事件处理程序)我或许可以添加一些过滤逻辑

c# - 在什么情况下有必要脱离事件?

我不确定我是否完全清楚附加到对象中事件的含义。这是我目前的理解,无论是正确的还是详尽的:1。附加到本地类事件不需要分离例子:this.Closing+=newSystem.ComponentModel.CancelEventHandler(MainWindow_Closing);公共(public)事件EventHandlerOnMyCustomEvent=delegate{};我假设当您的对象被释放或被垃圾回收时,函数会被释放并自动与事件分离。2。附加到您不再需要的对象(=null;)必须从中分离例子:附加到计时器的Elapsed事件,您只响应一次。我假设您需要将Timer存储在局部

c# - .NET 中是否可以将类的成员对象的事件暴露给外部?

假设我在ASP.NET中有一个包含按钮的用户控件:publicclassMyUserControl:UserControl{privateButtonbtnSave=newButton();}我可以通过创建指向按钮的属性将按钮的任何属性暴露给外部:publicstringSaveButtonText{get{returnbtnSave.Text;}set{btnSave.Text=value;}}然后我可以这样做来设置按钮的文本:MyControl.SaveButtonText="helloworld";我是否也可以使用类似的构造来将按钮的事件暴露给外部?像这样的东西:publicev

c# - 哪些方法可以让线程等待一个事件然后继续执行?

我有一个正在运行的线程,它委派了一些任务。当单个任务完成时,将引发一个事件,说明它已完成。这些任务需要按照特定的顺序运行,并且需要等待上一个任务完成。我怎样才能让线程等到它收到“任务完成”事件?(除了设置标志然后while循环轮询标志的明显事件处理程序之外) 最佳答案 我经常使用AutoResetEvent当我需要等待异步任务完成时等待句柄:publicvoidPerformAsyncTasks(){SomeClasssomeObj=newSomeClass()AutoResetEventwaitHandle=newAutoRese

c# - 创建自定义 wpf 事件

我已经为数据库连接创建了一个用户控件,用户可以在其中输入用户名和密码进行连接。此UserControl在MainWindow.xaml中现在,在我的用户控件后面的代码中,我创建了一个MSSQL连接。如果登录成功,我想引发一个自定义事件以在MainWindow中公开。例如在MyUserControl.xaml.cs中try{using(SqlConnectionsqlConn=newSqlConnection(connection)){sqlConn.Open();MessageBox.Show("ConnessioneRiuscita!","Connessionea"+TextIP.T

c# - 如何忽略二进制序列化的事件类成员?

我需要避免序列化Event类成员,因为当事件由未标记为可序列化的对象处理时,序列化将失败。我尝试在Event类成员上使用NonSerialized属性,但编译失败。这行代码:PublicEventPropertyValueChanged()产生以下错误:Attribute'NonSerializedAttribute'cannotbeappliedto'PropertyValueChanged'becausetheattributeisnotvalidonthisdeclarationtype.PublicEventPropertyValueChanged()'compilesbutn

c# - 关键字 'event' 在 C# 中是可选的吗?

eventOne(带关键字“event”)和eventTwo(不带关键字)有什么区别?classProgram{publiceventEventHandlereventOne;publicEventHandlereventTwo;publicvoidRaiseOne(){if(eventOne!=null)eventOne(this,EventArgs.Empty);}publicvoidRaiseTwo(){if(eventTwo!=null)eventTwo(this,EventArgs.Empty);}staticvoidMain(string[]args){varp=newPr

c# - WPF:在 ListView 中添加项目时引发事件

我在WPF上工作,我正在使用ListView,我需要在向其中添加项目时触发一个事件。我试过这个:vardependencyPropertyDescriptor=DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty,typeof(ListView));if(dependencyPropertyDescriptor!=null){dependencyPropertyDescriptor.AddValueChanged(this,ItemsSourcePropertyChangedCallback