草庐IT

new_worker_env

全部标签

c# - 将 worker 与 UI 线程同步

在现有项目上工作,我必须使用WinForms(有一段时间没有使用它)并且在与UI线程同步时遇到问题。我必须集成的设计如下:BackgroundWorker获取一个Action作为参数并异步执行它。我正在处理的Action有两个部分;一个核心类(包含业务逻辑)和一个GUI部分,如果它必须请求用户交互,则由核心通过事件通知。我已将句柄创建添加到窗体的构造函数中if(!IsHandleCreated){//besuretocreatethehandleintheconstructor//toallowsynchronizationwiththGUIthread//whenusingShow(

c# - 可观察集合 : calling OnCollectionChanged with multiple new items

请注意,我正在尝试使用NotifyCollectionChangedAction.Add操作而不是.Reset。后者确实有效,但对于大型收藏来说效率不高。所以我将ObservableCollection子类化:publicclassSuspendableObservableCollection:ObservableCollection出于某种原因,这段代码:privateList_cachedItems;...publicvoidFlushCache(){if(_cachedItems.Count>0){foreach(varitemin_cachedItems)Items.Add(i

c# - Visual C# 2010 速成版 : Specify default access modifier for new classes?

每当我使用VisualStudio2010ExpressC#创建新类时,它都会创建没有访问修饰符的新类。10次中有9次我希望我的新类(class)公开。如何让VisualStudio默认使用“public”修饰符创建空类模板? 最佳答案 诀窍是创建一个名为Class的新项模板。然后,当您执行“添加”>“新建类”时,默认情况下将选择您的模板,而不是内置的类模板。(我不确定这种行为是否得到保证,但它可以在我的机器上运行(TM)。)创建模板:右键单击您的项目并选择“添加”>“类”。您可以接受默认名称(Class1)-这只是一个临时文件。修

c# - new() 的通用类型约束和抽象基类

这里我们有一个简单的类层次结构,并且将泛型与typeconstraint一起使用new()的publicabstractclassBase{}publicclassDerived:Base{}publicclassTestClass{privatevoidDoSomething(Targ)whereT:new(){}publicvoidTestMethod(){Derivedd1=newDerived();DoSomething(d1);//compilesBased2=newDerived();DoSomething(d2);//compileerror}}代码在指示的行编译失败,错

c# - PredicateBuilder.New 与 PredicateBuilder.True

我正在使用PredicateBuilder在我的操作中创建一个搜索/过滤器部分。在这里:[HttpPost]publicActionResultTest(int?cty,stringinumber,int?page){varlstValues=db.TableName.Include(x=>x.Table1).Include(x=>x.Table2).Include(x=>x.Table3).ToList();varpredicate=PredicateBuilder.True();if(!string.IsNullOrWhiteSpace(inumber)){predicate=pr

c# - 在 MVVM 中使用后台 worker 更新 ObservableCollection

好的,我最近实现了一个后台工作程序来执行数据的保存和加载。然而,事实证明,要让它在保存命令上运行很困难。基本上,我的保存命令会生成一个事件,通知CollectionView模型已添加一个项目,并且该项目应该添加到它自己的ObservableCollection中。在这一点上,我得到了一个常见的异常,说我不能在不同的线程上更新ICollection。我已经尝试创建一个调用Dispatcher.Invoke的新列表类型,但这仍然会生成相同的异常。我想知道是否还有其他人对如何最好地解决这个问题有任何建议?所以目前我有一个继承自ObservableCollection的类:publicclas

C#-后台 worker 的 CancelAsync() 不工作?

我想中止该过程但无法这样做,我正在使用后台工作程序和我的处理功能。publicvoidInit(){bw=newBackgroundWorker();bw.WorkerSupportsCancellation=true;bw.DoWork+=newDoWorkEventHandler(bw_DoWork);bw.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(bw_RunWorkerCompleted);}voidbw_DoWork(objectsender,DoWorkEventArgse){if(bw.Cancellati

c# - 如何通过反射判断字段是否有 'new'修饰符?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowdoIdetectthe"new"modiferonafieldusingreflection?有如下声明publicclassB:A{publicnewstringName;}我如何确定该字段的FieldInfo实例是否具有"new"修饰符?

c# - 接口(interface)继承和new关键字

我要:publicinterfaceIBase{MyObjectProperty1{get;set;}}publicinterfaceIBaseSub:IBase{newTProperty1{get;set;}}publicclassMyClass:IBaseSub{publicYourObjectProperty1{get;set;}}但这不能编译。它给出了错误://ThisclassmustimplementtheinterfacememberIBase.Property1任何人都可以阐明这一点吗?我认为它应该工作..谢谢 最佳答案

c# - 为什么在没有 new() 泛型类型约束的情况下允许 Activator.CreateInstance<T>() ?

在下面显示的示例代码中,“CompileError”方法不会编译,因为它需要whereT:new()CreateWithNew()中所示的约束方法。然而,CreateWithActivator()方法在没有约束的情况下编译得很好。publicclassGenericTests{publicTCompileError()//compileerrorCS0304{returnnewT();}publicTCreateWithNew()whereT:new()//buildsok{returnnewT();}publicTCreateWithActivator()//buildsok{ret