草庐IT

状态机

全部标签

c# - 在大型应用程序中使用 MVVM - 共享 View 模型、模型、状态等

我想知道你们中是否有人知道一些很好的教程来解释大型应用程序的MVVM。我发现关于MVVM的每个教程都只是基础知识解释(如何实现模型、View模型和View),但我对在应用程序页面之间传递数据、在哪里初始化View模型、在哪里存储常见应用程序的技术和模式感到好奇数据(在多个View模型之间共享)等。我更喜欢没有任何MVVM框架(MVVMLight等)的纯c#/XAML解决方案。 最佳答案 techniquesandpatternswhenitcomestopassingdatabetweenapplicationpages如果数据传递

c# - 为什么 IEnumerator<T> 会影响 IEnumerable<T> 的状态,即使 ienumerator 从未到达终点?

我很好奇为什么以下内容会在“最后”分配时抛出错误消息(文本阅读器关闭异常):IEnumerabletextRows=File.ReadLines(sourceTextFileName);IEnumeratortextEnumerator=textRows.GetEnumerator();stringfirst=textRows.First();stringlast=textRows.Last();但是以下执行正常:IEnumerabletextRows=File.ReadLines(sourceTextFileName);stringfirst=textRows.First();str

c# - 为什么我不能使用 StateServer 在 2 个 Web 应用程序之间共享 session 状态?我错过了什么?

我无法让2个相同的ASP.NETMVC应用程序使用SessionStateServer共享同一个Session。我尝试这样做的原因是我们最终将在需要共享相同状态的3个Web服务器上部署这个应用程序。我们需要使用StateServer,因为我们正在尝试尽量减少将数据库用于非数据相关存储。设置:我已将相同的代码库部署到http://localhost/App1和http://localhost/应用2两者都有相同的Web.Config文件,内容如下://stateConnectionString="tcpip=192.168.1.52:42424"/>//alsodoesn'twork我用

c# - 每次我下载文件时,WebClient 都会打开一个新连接,并且所有连接都保持建立状态

我在寻找如何关闭WebClient建立的连接时遇到了问题。我创建了一个新的WebClient对象,然后多次调用DownloadFile方法,但是,它总是为每次调用创建一个新连接,并且这些连接保持打开状态(已建立状态),我可以在TCPView中看到所有已建立的连接。如果当我处理Webclient时,它们保持已建立状态,那更让我烦恼的是什么......?如何在下载完成后强制关闭连接?我已经尝试派生WebClient并手动将keepalive设置为false,我的应用程序配置也允许足够的连接。 最佳答案 简短回答:您不需要手动关闭连接。它

c# - 在不访问 MouseEventArgs 的情况下获取鼠标状态?

我有一个包含很多很多控件的表单。我需要检测鼠标是向下还是向上。大多数时候,我没有MouseEventArgs。没有mouseEventArgs是否有一种快速简便的方法来判断鼠标是否按下?是否有替代方案,或者类似的方法是唯一的方法吗?:foreach(Controlcinthis.Controls){c.MouseUp+=newMouseEventHandler(globalMouseUp);c.MouseDown+=newMouseEventHandler(globalMouseDown);}boolisMouseUp=true;privatevoidglobalMouseDown(o

c# - 无法生成显式迁移,因为以下显式迁移处于挂起状态

我正在使用EF6.1并通过在我的项目中启用了代码优先迁移Enable-MigrationsAdd-MigrationInitializeDb-ConnectionProviderNameSystem.Data.SqlClient-ConnectionString"DataSource=myServer;InitialCatalog=myDb;PersistSecurityInfo=True;UserID=sa;password=******;applicationname=L4"Update-Database-ConnectionProviderNameSystem.Data.SqlC

c# - 获取另一个进程的窗口状态

如何获取正在运行的另一个进程的窗口状态(最大化、最小化)?我试过用这个:Process[]procs=Process.GetProcesses();foreach(Processprocinprocs){if(proc.ProcessName=="notepad"){MessageBox.Show(proc.StartInfo.WindowStyle.ToString());}}但是如果进程是Maximized或Minimized,它会返回Normal。如何解决这个问题? 最佳答案 您需要通过P/Invoke使用Win32来检查另一

c# - 如何避免在 C# 中出现不可能的 bool 状态?

考虑这个函数,您可以将其视为真值表:publicFoodoSomething(boola,boolb){if(a&&b)returndoAB();elseif(a&&!b)returndoA();elseif(!a&&b)returndoB();elseif(!a&&!b)returndoNotANotB();elsethrownewException("Welldone,youdefeatedbooleanlogic!");}编译器坚持最后一个else子句。但从真值表的角度来看,这是不可能的状态。是的,它有效,是的,我可以接受它。但我想知道C#中是否有某种机制可以避免这种代码,或者我

c# - 模型状态无效

所以我有一个名为索引的View,它列出了我数据库中的所有线程。然后在该View中,我正在加载线程上的所有评论。当我调用应该创建新评论的表单时,它一直告诉我我的模型状态无效。它告诉我它不能从类型字符串转换为类型配置文件或评论或标签。最初我有这个作为我的代码:publicActionResultAddComment(Threadthread,stringcommentBody){if(ModelState.IsValid){_repository.AddComment(thread,comment);TempData["Message"]="Yourcommentwasadded.";re

c# - 当系统处于休眠状态时,Windows 服务中的计时器如何运行?

假设我有一个Windows服务,它有一个设置为每6小时运行一次的计时器,我希望它每天触发4次。假设:0000、0600、12001800。(军用时间,同00:00等...)如果系统在1000进入休眠状态,并在1700唤醒,会发生什么?它会在1900再次触发吗,因为它的计时器还有2小时?它会立即触发(因为它错过了1200的约会),然后在2300再次触发(在当前时间上加上6小时?)我注意到当计算机进入休眠状态时,它不会触发OnPause或OnContinue方法。如果有人能阐明上述情况下系统的行为,那就太好了。干杯,并提前致谢。 最佳答案