草庐IT

c# - Elapsed 事件 v Tick 事件?

System.Timers.Timer的Elapsed事件实际上与System.Windows.Forms.Timer的Tick事件相同吗?在特定情况下使用其中一种比使用另一种有优势吗? 最佳答案 其他答案提供了很多细节,但您提到的两个计时器之间的主要区别在于System.Windows.Forms.Timer将在UI线程上调用回调,而System.Timers.Timer将使用核心线程池中的线程之一。 关于c#-Elapsed事件vTick事件?,我们在StackOverflow上找到

c# - 对类实例而不是 float 进行排序时 Array.Sort() 性能下降

如果对float进行排序,C#中的Array.Sort非常快,我需要一些额外的数据来处理这些float,所以我创建了一个简单的类并扩展了IComparable接口(interface)。现在Array.Sort突然慢了3-4倍,这是为什么?我该如何提高性能?演示代码:usingSystem;usingSystem.Diagnostics;usingSystem.Linq;namespaceSortTest{classProgram{staticvoidMain(string[]args){intarraySize=10000;intloops=500;doublenormalFloat

c# - 如何在不循环的情况下使用 System.TimeSpan 值实现模数运算?

我在我的代码(C#/WPF)中对性能非常敏感的部分,我需要以最快的方式在两个System.TimeSpan值之间执行取模运算。此代码每秒将运行数千次,我非常愿意不惜一切代价避免使用手动循环计算。两个TimeSpans之间的模数的想法可能看起来有点奇怪,所以请允许我解释一下-说我们有时间跨度A=1分30秒时间跨度B=20秒以下是常见操作及其合理结果的列表:A+B=(TimeSpan)1分50秒A-B=(TimeSpan)1分10秒A*B=没有合理的计算方法我们应该能够将TimeSpan乘以一个整数。A*5=(TimeSpan)7分30秒Microsoft尚未实现TimeSpans和整数之

c# - 即使条件评估为 false,If 语句似乎也在评估

昨晚工作到很晚,我们试图弄清楚为什么会出现故障。验证检查在不应该的时候失败了。我们最终向这段代码添加了一条打印语句(从Reflector反汇编以检查代码是否确实是我们编写的内容):publicstaticstringRedacted(stringname,DateTimelastModified){longticks=lastModified.Ticks;if((ticks!=(ticks-(ticks%10000L)))&&(lastModified!=DateTime.MaxValue)){Log.Debug(string.Format("LastModifiedDate='{0}

c# - 使用 DateTime.Now.Ticks 生成唯一的数字 ID

我需要生成一个唯一的数字ID以附加到传入请求。此ID仅临时用于跟踪请求,一旦请求完成处理将被丢弃。此ID将仅在该应用程序的上下文中使用,但需要以高性能多线程方式分配。我正在考虑将DateTime.Now.Ticks用于此ID,但想知道如果同时处理同时请求,DateTime.Now.Ticks是否仍会生成冲突ID?如果有人可以建议一种在多线程环境中生成这些ID的更好方法(最好是不是像Tick那样的Int64的方法),请告诉我。像递增数字这样简单的东西就足够了,只要我不必在递增之前锁定数字即可。 最佳答案 您只需要使用一个静态变量,每次

c# - DispatcherTimer 未触发 Tick 事件

我有一个DispatcherTimer,我已经像这样初始化了:staticDispatcherTimer_timer=newDispatcherTimer();staticvoidMain(){_timer.Interval=newTimeSpan(0,0,5);_timer.Tick+=newEventHandler(_timer_Tick);_timer.Start();}staticvoid_timer_Tick(objectsender,EventArgse){//dosomething}_timer_Tick事件从未被触发,我是不是错过了什么? 最

c# - 在 C# 中确定未修剪的字符串是否为空的最有效方法是什么?

我有一个字符串,周围可能有空白字符,我想检查它是否本质上是空的。有很多方法可以做到这一点:1if(myString.Trim().Length==0)2if(myString.Trim()=="")3if(myString.Trim().Equals(""))4if(myString.Trim()==String.Empty)5if(myString.Trim().Equals(String.Empty))我知道这通常是一个明显的过早优化案例,但我很好奇并且有可能这样做足以对性能产生影响。那么,哪种方法最有效?有没有我没有想到的更好的方法?编辑:此问题的访问者注意事项:已经对这个问题进

c# - 如何修复 WinForms 窗体中的闪烁?

我不断地绘制框架,我需要表格不闪烁。我该如何实现?publicpartialclassForm1:Form{Image[]dude=newImage[3];staticintrenderpoint=0;intlastimage=0;publicForm1(){dude[1]=newBitmap(@"snipe1.bmp");dude[0]=newBitmap(@"snipe0.bmp");InitializeComponent();}privatevoidForm1_Shown(objectsender,EventArgse){MainLoop();}privatevoidMainLo

c# - 在 JavaScript 中将 C# .NET DateTime.ticks 转换为天/小时/分钟

在我的系统中,我在Ticks中存储了一个持续时间,它被传递到我的客户端移动应用程序,我想从那里将​​ticks转换为人类可读的形式。就我而言,天数、小时数和分钟数。我的客户端移动应用程序是使用Javascript编码的,因此这就是我用来将持续时间转换为天/小时/分钟的方法。 最佳答案 在C#.NET中,一个滴答声代表一百纳秒,或百万分之一秒。[Source].因此,为了根据滴答数(四舍五入到最接近的整数)计算天数,我首先通过乘以一千万来计算秒数,然后将其乘以秒数一天(每分钟60秒,每小时60分钟,一天24小时)。我使用模数运算符(%

javascript - Angular 2 fakeAsync 在使用 tick() 的函数中等待超时?

我正在尝试从Angular2中的模拟后端获取结果以进行单元测试。目前,我们正在使用带有超时的fakeAsync来模拟时间的流逝。当前工作单元测试it('timeout(fakeAsync/tick)',fakeAsync(()=>{counter.getTimeout();tick(3000);//manuallyspecifythewaitingtime}));但是,这意味着我们仅限于手动定义的超时。不是在异步任务完成时。我想要做的是让tick()等到任务完成后再继续测试。这似乎没有按预期工作。阅读fakeAsync并勾选答案here解释说:tick()simulatestheasy