草庐IT

Do-While

全部标签

ios - 在 Swift 中做 while 循环

如何在Swift中编写do-while循环? 最佳答案 这是Swift的repeat-while循环的一般形式repeat{statements}whilecondition例如,repeat{//takeinputfromstandardIOintovariablen}whilen>=0;这个循环将对n的所有正值重复。 关于ios-在Swift中做while循环,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

ios - fatal error : unexpectedly found nil while unwrapping an Optional values

这个问题在这里已经有了答案:Whatdoes"Fatalerror:UnexpectedlyfoundnilwhileunwrappinganOptionalvalue"mean?(16个答案)关闭6年前。我在Swift中使用了UICollectionView,但是当我尝试更改单元格标签的文本时出现了错误。funccollectionView(collectionView:UICollectionView!,numberOfItemsInSectionsection:Int)->Int{return5}funccollectionView(collectionView:UICollec

c# - C# 中 for(;;) 和 while (true) 的区别?

从句法上看,它们会无限循环,直到遇到break语句,但它们是否被编译成相同的东西?for稍微快一点是因为它没有要检查的条件吗?除了代码可读性之外,还有什么区别吗? 最佳答案 鉴于此输入:privatestaticvoidForLoop(){intn=0;for(;;){Console.WriteLine(n++);}}privatestaticvoidWhileLoop(){intn=0;while(true){Console.WriteLine(n++);}}...你得到这个输出:.methodprivatehidebysigst

dependency-injection - 依赖注入(inject)框架 : Why do I care?

我正在阅读InjectionbyHand和Ninjection(以及WhyuseNinject)。我遇到了两个困惑:手动注入(inject)技术我已经很熟悉了,但我对Ninjection不熟悉,因此不确定完整的程序如何工作。也许提供一个完整的程序会有所帮助,而不是像该页面上所做的那样,将程序分解成多个部分我仍然不明白这如何让事情变得更简单。我想我错过了一些重要的东西。如果您正在创建一组注入(inject)然后同时在两个大组之间切换(这对于模拟等很有用),我可以看出注入(inject)框架会有多大帮助,但我认为还有更多比起那个来说。但我不确定是什么。或者,也许我只需要更多例子来说明为什么

c# - 这怎么可能 : OnPaint processed while in WaitOne

我有一个ManualResetEvent。有一次,我使用WaitOne等待那个事件。令我惊讶的是,我在WaitOne中收到了一个OnPaint事件。这种情况也经常发生。堆栈跟踪看起来像这样:我知道WaitOne会阻塞当前线程,并且在事件触发之前不允许执行任何其他代码。有人能解释一下这里发生了什么吗? 最佳答案 这是设计使然。CLR遵守单线程单元(STA)的契约(Contract)。GUI应用程序的主线程是Windows编程所要求的STA,Main()方法中的[STAThread]属性可确保这一点。STA线程的硬性规则是它必须泵送消息

C# 线程/异步 : Running a task in the background while UI is interactable

在了解了Async/Await和Threading之后,我仍然不确定将其应用于我的情况的正确方法。无论我尝试的变体如何,我的UI仍然挂起,因为我似乎没有异步调用我想要的函数,此外,我的解决方案实际上可能需要线程。我想做什么:我有一个WPF应用程序,上面有一个按钮,我想启动一个操作,该操作仍然允许通过UI或其他方式与程序进行交互。一旦满足在此函数之外确定的条件,该函数就应该结束。对我来说,这听起来很标准,但我觉得我误解了一些东西,而且我实现不正确。我现在拥有的:privateasyncvoidstart_button_Click(objectsender,RoutedEventArgse

C# 拖放 : Show the dragged item while dragging

我正在使用Windows窗体在C#中构建桌面应用程序。我有一个自定义控件,我希望能够将它拖放到我的应用程序中(而不是外部)。现在我正在使用通常的DoDragDrop/OnDragOver/OnDragDrop方法来实现它。有什么方法可以在控件被拖来拖去时连续绘制控件——有点像您在JQuery的拖放中看到的那样?我希望实际控件留在原地,但我想在用户拖动它时绘制其外观的副本。理想情况下,该副本甚至应该是半透明的,但这更像是“拥有它就好了”。我能想到的唯一方法是将绘制代码放在主窗体的OnPaint方法中,但这似乎是一个不够优雅的解决方案。还有其他想法吗?如果控件将自己描绘成位图,事情会更容易

c# - SignalR .Net 客户端 : How do I send a message to a Group?

我正在使用SignalRWiki入门中心页面中的示例聊天应用程序。我已经扩展它以添加组支持并且它工作正常。但是,现在我想从外部控制台应用程序向群组发送消息。这是我的控制台应用程序代码,下面是我的群组代码。如何从代理向群组发送消息?可能吗?//ConsoleAppusingSystem;usingMicrosoft.AspNet.SignalR.Client.Hubs;namespaceSignalrNetClient{classProgram{staticvoidMain(string[]args){//Connecttotheservicevarconnection=newHubCo

c# - Windows 服务 : OnStart loop - do I need to delegate?

我有一个Windows服务,它每n秒扫描一次文件夹以查找更改。尝试启动时出现“服务未及时响应启动命令”。我在OnStart中设置了一个循环,如下所示:publicvoidOnStart(string[]args){while(!_shouldExit){//DoStuff//RepeatThread.Sleep(_scanIntervalMillis);}}这是导致错误的原因吗?我应该委托(delegate)这个方法吗? 最佳答案 OnStart应该只开始工作;它不负责这样做。这通常意味着产生一个新线程来完成实际工作。预计OnSta

c# - .net 构造 for while 循环超时

我通常使用while循环来继续尝试某些操作,直到操作成功或超时结束:boolsuccess=falseintelapsed=0while((!success)&&(elapsed我知道有几种方法可以实现这一点,但基本要点是我反复尝试一些sleep操作直到成功,或者我睡得太久了。是否有一个内置的.net类/方法/等来避免我到处重写这个模式?也许输入是一个Func(ofbool)和超时?编辑感谢所有贡献者。我选择了sleep()方法,因为它最不复杂,而且我完全反对复杂性=)这是我的(仍然需要测试的)实现:publicstaticboolRetryUntilSuccessOrTimeout(