草庐IT

Auto-Job任务调度框架

全部标签

c# - 我如何处理不想等待的异步任务?

我正在编写一个多人游戏服务器,并且正在研究新的C#async/await功能可以实现的方式帮我。服务器的核心是一个循环,它会尽可能快地更新游戏中的所有Actor可以:while(!shutdown){foreach(varactorinactors)actor.Update();//Sendandreceivependingnetworkmessages//Variousothersystemmaintenance}此循环需要处理数千个Actor并每秒更新多次以保持游戏运行流畅。有些Actor偶尔会在他们的更新功能中执行缓慢的任务,例如从数据库中获取数据,这是我想使用异步的地方。一旦检

c# - IoC/DI 框架与智能客户端 Winform 应用程序 : How should I approach this?

我正在启动一个新的Winforms应用程序,我打算使用IoC/DI框架(可能是Ninject,但我也在考虑StructureMap和LinFu)。似乎几乎所有使用IoC/DI的人都是在基于Web的环境中这样做,并且几乎没有发现任何与它一起使用Winforms的东西。我想知道是否有人在Winforms中使用IoC/DI以及您使用什么方法来处理Winforms相关问题(例如,您如何使容器在应用程序的各个部分可用,您是否使用实例化表单等的框架。)如果有人知道任何使用IoC/DI的基于Winforms的开源项目(无论哪个框架,我都应该能够翻译概念)我也想要这些链接。编辑:人们不再编写智能客户端

c# - 现在开始为任务并行库设计是否为时过早?

自从Microsoft首次宣布.NET任务并行库(TPL)以来,我一直以极大的兴趣关注它的开发。我坚信我们最终会利用TPL。我想问的是,在VisualStudio2010和.NET4.0发布时开始利用TPL是否有意义,或者再等一段时间是否有意义。为什么现在开始?.NET4.0任务并行库似乎设计得很好,一些相对简单的测试表明它在当今的多核CPU上运行良好。自大约七年前购买我的第一台四处理器DellPoweredge6400以来,我一直对使用多个轻量级线程来加速我们的软件的潜在优势非常感兴趣。当时的实验表明这是不值得的,我主要将其归因于在每个CPU的缓存(当时没有共享缓存)和RAM之间移动

c# - 在 wpf 中设置与窗口标题不同的任务栏文本

我在C#中使用VS2010进行开发,我想创建一个WPF窗口,其任务栏文本与窗口标题不同。属性Title设置窗口标题和任务栏文本。有没有办法分别设置它们? 最佳答案 首先,让我强调CodyGray在他的回答和评论中所说的话-这是非标准行为,您应该有充分的理由这样做。话虽如此,对于Cody的第1点,我会采取几乎相反的方法。我会创建一个WindowStyle设置为None的窗口,并重新创建标题栏(其中可能包括图标、您的“伪标题”、最小化、最大化和关闭按钮,甚至可能是标准的Windows菜单。您还需要处理调整大小(这可以通过将ResizeM

c# - 在 ContinueWith 中观察任务异常

有多种方法可以观察任务中抛出的异常。其中之一在ContinueWith和OnlyOnFaulted中:vartask=Task.Factory.StartNew(()=>{//Throwsanexception//(possiblyfromwithinanothertaskspawnedfromwithinthistask)});varfailureTask=task.ContinueWith((t)=>{//Flattenandloop(sincetherecouldhavebeenmultipletasks)foreach(varexint.Exception.Flatten().

c# - 没有访客模式的动态调度

问题我正在使用一个已经存在的库,我无法访问它的源代码。这个库代表一个AST。我想复制此AST的部分内容,但在此过程中重命名对变量的引用。因为可以有一个AssignCommand-Object,它包含一个Expression-object,我希望能够用它自己的函数复制每个对象,这样我就可以递归地调用它们。但是,由于我无权访问库的代码,因此我无法添加诸如CopyAndRename(stringprefix)之类的方法。.因此,我的方法是创建一个函数Rename有几个重载。因此,我将有一个家庭功能如下:publicstaticCommandRename(Commandcmd,stringpr

c# - 如何将其转换为异步任务?

给定以下代码...staticvoidDoSomething(intid){Thread.Sleep(50);Console.WriteLine(@"DidSomething({0})",id);}我知道我可以将其转换为异步任务,如下所示...staticasyncTaskDoSomethingAsync(intid){awaitTask.Delay(50);Console.WriteLine(@"DidSomethingAsync({0})",id);}这样做,如果我多次调用(Task.WhenAll),一切都会比使用Parallel.Foreach甚至从循环内调用更快、更高效。但是

c# - 在 .NET 中是否有用于长时间运行线程的线程调度程序?

我们的场景是网络扫描仪。它连接到一组主机并使用低优先级后台线程并行扫描它们一段时间。我希望能够安排大量工作,但只能同时扫描任意给定的10台或任意数量的主机。即使我创建自己的线程,许多回调和其他异步优点也会使用ThreadPool,我最终会耗尽资源。我应该看看MonoTorrent...如果我使用THEThreadPool,我能否将我的应用程序限制为某个数量,以便为应用程序的其余部分顺利运行留出足够的空间?是否有一个线程池可以初始化为n个长期存在的线程?[编辑]似乎没有人注意到我对一些回复做了一些评论,所以我将在此处添加一些内容。线程应该是可取消的优雅而有力。线程应具有低优先级,让GUI

c# - 如何使用 C# 和 .NET 框架创建 Windows 7 通知区域弹出窗口?

我正在尝试使用Windows7创建应用程序NotificationAreaFlyouts,例如Windows7中内置的音量、电源和无线图标。我还没有找到关于.NETAPI的任何信息来实现它。是否有内置的方法来创建通知区域弹出窗口?如果没有,是否还有其他方法可以实现此功能? 最佳答案 它们没有任何特别之处,只是一个没有标题栏的普通窗口(窗体)。ControlBox=false和Text=""在winforms中。您唯一需要做的就是设置其Location属性,使其显示在通知区域上方。并实现Deactivate事件以将其关闭。

c# - 如何访问页面框架以通过 UWP 中的 UserControl 对象导航页面?

我正在开发一个涉及多个UserControl的UWP应用程序使用Windows.UI.Xaml.Navigation的Map中的对象。有时,用户应该能够单击这些对象中的按钮以转到新页面。但是,我不能访问页面的框架,所以我不能使用下面的方法。Frame.Navigate(typeof([page]));如何访问页面框架以使用该方法?让我知道任何替代方案;我一天的大部分时间都坚持这个!提前感谢你们提供的任何帮助! 最佳答案 我们可以让页面自己导航。只需在您的自定义用户控件中定义一个事件并在其父级(页面)中监听该事件。以下面为例:创建一个