草庐IT

c# - 加载新的 WPF/C# 窗口时触发的最后一个事件是什么?

我正在尝试为我的应用程序加载首选项窗口,我希望应用按钮最初被禁用,然后当首选项更新时,应用按钮再次启用。我有一些控件数据绑定(bind)到首选项对象,发生的事情是在窗口加载后,组合框事件被触发。有没有什么事件可以保证在一切都稳定后最后发生?我的代码如下所示(应用按钮在窗口加载后始终处于启用状态):privatevoidWindow_Loaded(objectsender,RoutedEventArgse){_preferencesData=newPreferencesDataContext();LayoutRoot.DataContext=_preferencesData;Button

c# - += 事件运算符

publicvoidBar(){Foofoo=newFoo();**foo.MyEvent+=foo_MyEvent;**foo.FireEvent();}voidfoo_MyEvent(objectsender,EventArgse){((Foo)sender).MyEvent-=foo_MyEvent;}嘿,我对事件有点陌生,谁能告诉我+=运算符对事件有什么作用? 最佳答案 +=订阅一个事件。+=右侧的委托(delegate)或方法将被添加到事件跟踪的内部列表中,当所属类触发该事件时,列表中的所有委托(delegate)将被调用

c# - += 事件运算符

publicvoidBar(){Foofoo=newFoo();**foo.MyEvent+=foo_MyEvent;**foo.FireEvent();}voidfoo_MyEvent(objectsender,EventArgse){((Foo)sender).MyEvent-=foo_MyEvent;}嘿,我对事件有点陌生,谁能告诉我+=运算符对事件有什么作用? 最佳答案 +=订阅一个事件。+=右侧的委托(delegate)或方法将被添加到事件跟踪的内部列表中,当所属类触发该事件时,列表中的所有委托(delegate)将被调用

c# - 如何手动调用事件?

我在C#中有以下行:_timer.ElapsedTick+=_somefunction1;_timer.ElapsedTick+=_somefunction2;_timer.ElapsedTick+=_somefunction3;如何在不指定_somefunction的情况下调用订阅到_timer.ElapsedTick的所有方法?沿着这条伪线的某处invoke(_timer.ElapsedTick); 最佳答案 您不能调用属于其他类型的事件。事件只能从声明它的类内部调用。 关于c#-如

c# - 如何手动调用事件?

我在C#中有以下行:_timer.ElapsedTick+=_somefunction1;_timer.ElapsedTick+=_somefunction2;_timer.ElapsedTick+=_somefunction3;如何在不指定_somefunction的情况下调用订阅到_timer.ElapsedTick的所有方法?沿着这条伪线的某处invoke(_timer.ElapsedTick); 最佳答案 您不能调用属于其他类型的事件。事件只能从声明它的类内部调用。 关于c#-如

c# - 在 C# 中无限/定期执行代码的最佳实践

通常在我的代码中,我启动的线程基本上是这样的:voidWatchForSomething(){while(true){if(SomeCondition){//RaiseEventtohandleConditionOnSomeCondition();}Sleep(100);}}只是想知道某些条件是否为真(例如,如果有一个没有事件的错误编码库,只有bool变量,我需要它们的“实时View”)。我想知道是否有更好的方法来完成这种工作,例如HookWindows函数,它可以在所有x秒内运行我的方法。或者我应该为我的应用程序编写一个全局事件,提高所有x秒并让他像这样调用我的方法://Eventf

c# - 在 C# 中无限/定期执行代码的最佳实践

通常在我的代码中,我启动的线程基本上是这样的:voidWatchForSomething(){while(true){if(SomeCondition){//RaiseEventtohandleConditionOnSomeCondition();}Sleep(100);}}只是想知道某些条件是否为真(例如,如果有一个没有事件的错误编码库,只有bool变量,我需要它们的“实时View”)。我想知道是否有更好的方法来完成这种工作,例如HookWindows函数,它可以在所有x秒内运行我的方法。或者我应该为我的应用程序编写一个全局事件,提高所有x秒并让他像这样调用我的方法://Eventf

c# - 在对象成为孤立对象之前,我是否需要从对象中删除事件订阅?

如果我的软件有两个对象实例,其中一个订阅了另一个的事件。我是否需要在它们成为孤立对象以供垃圾收集器清理之前取消订阅它们?还是有其他原因我应该清除事件关系?如果订阅的对象是孤立的但订阅者不是孤立的,反之亦然怎么办? 最佳答案 是的,你知道。事件发布者持有对对象的引用,并会阻止它们被垃圾回收。让我们看一个例子,看看会发生什么。我们有两个类(class);一个公开一个事件,另一个使用它:classClassA{publiceventEventHandlerTest;~ClassA(){Console.WriteLine("Abeingco

c# - 在对象成为孤立对象之前,我是否需要从对象中删除事件订阅?

如果我的软件有两个对象实例,其中一个订阅了另一个的事件。我是否需要在它们成为孤立对象以供垃圾收集器清理之前取消订阅它们?还是有其他原因我应该清除事件关系?如果订阅的对象是孤立的但订阅者不是孤立的,反之亦然怎么办? 最佳答案 是的,你知道。事件发布者持有对对象的引用,并会阻止它们被垃圾回收。让我们看一个例子,看看会发生什么。我们有两个类(class);一个公开一个事件,另一个使用它:classClassA{publiceventEventHandlerTest;~ClassA(){Console.WriteLine("Abeingco

c# - 为事件定义一个空的委托(delegate)主体是一个好习惯吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Isthereadownsidetoaddingananonymousemptydelegateoneventdeclaration?为事件定义一个空的委托(delegate)主体是否是一种好习惯,这样您就不必担心引发没有事件处理程序的事件?(无需检查事件是否为空)。喜欢下面的代码:publiceventEventHandlerLoadedData=delegate{};