草庐IT

default_timer

全部标签

c# - 将异步回调传递给 Timer 构造函数

我有异步回调,它被传递到Timer(来自System.Threading)构造函数:privateasyncTaskHandleTimerCallback(objectstate){if(timer==null)return;if(asynTaskCallback!=null){awaitHandleAsyncTaskTimerCallback(state);}else{HandleSyncTimerCallback(state);}}和计时器:timer=newTimer(asynco=>awaitHandleTimerCallback(o),state,CommonConstant

c# - 如何在 C# 中覆盖 default(T)?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtochangewhatDefault(T)returnsinC#print(default(int)==0)//true同样,如果我有一个自定义对象,它的默认值将为null。print(default(Foo)==null)//true我可以为default(Foo)设置一个自定义值而不是null吗?例如,像这样:publicstaticoverrideFoodefault(){returnnewFoo();}这不会编译。谢谢..

c# - 如果前一个线程仍然很忙,如何让 Timer 跳过滴答

我创建了一个Windows服务,它应该每60秒检查数据库中的某个表是否有新行。对于添加的每一行,我都需要在服务器上进行一些繁重的处理,有时可能需要超过60秒。我在我的服务中创建了一个Timer对象,它每60秒计时一次并调用所需的方法。由于我不希望此计时器在处理找到的新行时计时,我将该方法包装在lock{}block中,因此其他线程无法访问它。看起来像这样:TimerserviceTimer=newTimer();serviceTimer.Interval=60;serviceTimer.Elapsed+=newElapsedEventHandler(serviceTimer_Elaps

c# - 如何优雅地停止 System.Threading.Timer?

我有一个用C#实现的Windows服务,它需要经常做一些工作。我已经使用System.Threading.Timer实现了这一点,该回调方法负责安排下一个回调。我无法优雅地停止(即处理)计时器。以下是您可以在控制台应用程序中运行的一些简化代码,可以说明我的问题:constinttickInterval=1000;//onesecondtimer=newTimer(state=>{//simulatesomeworkthattakestensecondsThread.Sleep(tickInterval*10);//whentheworkisdone,schedulethenextcal

c# - Properties.Settings.Default.Save(); ->那个文件在哪里

我有一个使用“设置”的应用。要保存我使用的设置:Properties.Settings.Default.Save();阅读我使用的:Properties.Settings.Default.MyCustomSetting;在我的应用程序文件夹中,我只有exe文件。没有配置文件。我的应用程序运行良好,可以读写设置。如果该文件不在应用程序文件夹中,该文件位于何处? 最佳答案 在我的WindowsXP机器上,设置保存在C:\DocumentsandSettings\\ApplicationData\下某处名为user.config的文件中。

c# - 如何判断用户访问的是 "/Default.aspx"还是 "/"

我正在我的Global.asax.cs的Application_BeginRequest部分中编写。出于SEO目的,我正在尝试重定向正在查看的用户:http://www.example.com/Default.aspx到:http://www.example.com/我的问题是:我如何知道用户正在看哪个?我一直在使用:HttpContext.Current.Request.Url.*但是无论我访问哪一个,所有参数都是相同的。 最佳答案 您可以获取在用户浏览器中输入的路径:stringpath=Request.RawUrl;MSDN

c# - 为什么 List<T>.Sort 使用 Comparer<int>.Default 比等效的自定义比较器快两倍以上?

结果使用1000万个随机列表ints(每次相同的种子,重复10次的平均值):listCopy.Sort(Comparer.Default)需要314毫秒。使用sealedclassIntComparer:IComparer{publicintCompare(intx,inty){returnxlistCopy.Sort(newIntComparer())需要716毫秒。一些变化:使用structIntComparer而不是sealedclass:771毫秒使用publicintCompare(intx,inty){returnx.CompareTo(y);}:809毫秒评论Compar

c# - 在 switch case 中,如果我们将 "default"写为任何单词或单个字母,它不会抛出错误

在switch中,如果我们写任何单词或单个字母而不是default,它不会抛出错误。例如switch(10){case1:break;hello:break;}它运行时没有抛出错误。谁能解释一下这是如何工作的? 最佳答案 它正在编译,因为hello:是一个标签,因此可以作为goto的目的地。当我编译这个时,我收到了关于未引用标签的警告(因为我没有转到)这是您可以放入LINQPad的示例-您会注意到它同时打印“1”和“hello”:switch(1){case1:"1".Dump();gotohello;break;hello:"he

c# - Observable.Timer() : How to avoid timer drift?

在C#(.NET4.0)应用程序中,我使用ReactiveExtensions(2.0.20823.0)生成时间边界以将事件分组为聚合值。为了简化对生成的数据库的查询,这些边界需要在整个小时(或下例中的秒)对齐。使用Observable.Timer():vartime=DefaultScheduler.Instance;varstart=newDateTimeOffset(time.Now.DateTime,time.Now.Offset);varspan=TimeSpan.FromSeconds(1);start-=TimeSpan.FromTicks(start.Ticks%100

C# 字典性能 : Default string Comparer's GetHashCode() allocates memory in violation of guidelines, 从而破坏性能?

有anestablishedguideline获取哈希码不应分配内存,因为这会通过调用垃圾收集器对哈希表查找产生负面影响。然而,这个确切的失败是我所看到的我使用System.Collections.Generic.Dictionary的应用程序的配置文件在一个非常紧凑的循环中,我在分析器结果中发现以下内容:[3.47%]TryGetValue(TKey,TValue&)(...字典)[3.47%]FindEntry(TKey)(...字典)[3.47%]GetHashCode(string)(System.CultureAwareComparer)[3.46%]GetHashCodeO