是否有一个选项或注册表设置来阻止Visual Studio在遇到断点时自动聚焦?
我不希望Visual Studio自动聚焦的原因是因为我在调试软件时倾向于进行多任务处理.当我启动调试器时,应用程序可能需要一段时间才能编译并命中断点.我通常需要等待时间来回复电子邮件.
当我输入我的电子邮件时,调试器会使Visual Studio专注于突破线,当我输入我的电子邮件时,我会不小心修改源代码.
我有一个窗口表单应用程序,它有多个运行的线程,将在主UI线程上调用以更新UI.有时在开发机器上,应用程序主UI线程将停止运行,应用程序不再响应.如果我让应用程序一夜之间运行似乎就会发生.但是,我有用户通过远程桌面运行此窗口表单应用程序,如果应用程序在没有用户交互的情况下一夜之间运行,则会出现此问题.
我发现一篇文章似乎在描述这个问题,但我没有足够的Windows开发知识来弄清楚应用程序冻结的原因.
我得到的唯一信息是以下堆栈跟踪,表明主UI线程正在等待某种操作.
这个问题一直困扰着我很长一段时间.我将不胜感激任何建议或意见.
谢谢!
Main UI thread stack trace: mscorlib.dll!System.Threading.WaitHandle.WaitOne(long timeout, bool exitContext) + 0x2f bytes mscorlib.dll!System.Threading.WaitHandle.WaitOne(int millisecondsTimeout, bool exitContext) + 0x25 bytes System.Windows.Forms.dll!System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle waitHandle = {System.Threading.ManualResetEvent}) Line 4268 C# System.Windows.Forms.dll!System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control caller, System.Delegate method, object[] args, bool synchronous) Line 7614 C# System.Windows.Forms.dll!System.Windows.Forms.Control.Invoke(System.Delegate method, object[] args) Line 7178 + 0x11 bytes C# System.Windows.Forms.dll!System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback d, object state) Line 89 C# System.dll!Microsoft.Win32.SystemEvents.SystemEventInvokeInfo.Invoke(bool checkFinalization = true, object[] args = {object[2]}) + 0x62 bytes System.dll!Microsoft.Win32.SystemEvents.RaiseEvent(bool checkFinalization = true, object key = {object}, …
是否有任何 .NET 性能分析工具可以附加到正在运行的 Windows 服务并进行基本的堆栈调用采样?如果该工具不需要安装,那就太好了,因为我需要通过客户的 IT 部门处理大量繁文缛节。
谢谢
性能问题的性质:这个有性能问题的程序作为 Windows 服务运行,它处理来自 200 多个移动设备的收入消息。通常这个程序每秒可以处理至少 10 条消息。不幸的是,在最近的升级之后,由于某些原因,该程序通常在早上 7 点左右不再能够足够快地处理消息。一条消息进来,它可能在程序内部队列中停留超过 10 分钟,然后才能被处理。我们还注意到该程序使用的 CPU 高于普通 CPU。通常在八核机器上应该是 5%,现在是 20-25%。
该程序不仅仅处理传入的消息,它还维护数据库并向客户端提供数据。它有五个线程处理传入的消息,任何维护作业都在其线程上运行。
当前的解决方法是在速度变慢时重新启动服务。重新启动后,程序会再次正常运行(CPU 低于 5%)。直到第二天早上 7 点左右,它才会发生。每次重新启动后,队列中的所有消息都会被丢弃。通常早上 7 点和下午 5 点是我们收到大量消息的时间,但问题似乎只发生在早上 7 点。
我们的团队已尝试使用模拟消息在内部重现该程序,并进行代码比较以查看是否存在任何关键瓶颈。
我正在使用C#处理数据仓库的ETL过程,它支持SQL Server和Oracle.在开发过程中,我一直在编写存储过程,将数据从一个数据库同步到另一个数据库.存储过程代码相当丑陋,因为它涉及动态SQL.它需要构建SQL字符串,因为我们有动态数据库名称.
我的团队负责人希望使用C#代码来执行ETL.我们有代码生成,可在数据库定义更改时自动生成新类.这也是我决定不使用Rhino ETL的原因.
以下是优点和缺点:
存储过程:
优点:
缺点
C#代码:
优点:
缺点:
我更喜欢使用应用程序代码来执行ETL过程,但与存储过程相比,性能非常糟糕.在一次测试中,当我尝试更新10,000行时.存储过程只用了1秒,而我的ETL代码用了70秒.即使我以某种方式设法减少开销,70%的20%纯粹是从应用程序代码调用更新语句.
有人可以提供有关如何使用应用程序代码加速ETL过程的建议或评论吗?
我的下一个想法是尝试通过打开多个数据库连接并执行更新和插入来执行并行ETL过程.
谢谢
如果我尝试从表中删除数据的早午餐.说
DELETE FROM myTable Where CreationDate < GetDate()
Run Code Online (Sandbox Code Playgroud)
这需要几个小时才能被删除,这个表会被锁定并且不会发生新的插入吗?
此表不会自我引用.我想我仍然可以在删除时插入新数据.删除sql是否会使用独占锁来阻止对表的所有访问?
谢谢
我正在尝试为使用.net远程处理对象的方法编写单元测试.
远程对象是使用Activator.GetObject(typeof(myRemotingObjectType),uri)创建的;
在运行时期间,uri是远程处理对象的服务器IP地址.
由于我想编写单元测试,我不想初始化任何.Net远程处理以尽可能减慢测试速度.
谢谢
我不是PL/SQL的家人.任何人都可以解释为什么我不能做以下事情?
BEGIN
IF TRUE THEN
CREATE INDEX TestIndex ON SomeTable (SomeColumn);
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
我会收到以下错误:
错误报告:ORA-06550:第3行,第5列:PLS-00103:当遇到以下情况之一时遇到符号"CREATE":如果循环mod为空pragma raise返回选择更新,则使用<<开关大小写声明退出当前删除fetch lock insert open rollback savepoint set sql execute commit forall merge pipe 06550. 00000 - "line%s,column%s:\n%s"*原因:通常是PL/SQL编译错误.*行动:
我可以通过传递此错误的唯一方法是动态sql:
BEGIN
IF TRUE THEN
EXECUTE IMMEDIATE 'CREATE INDEX TestIndex ON SomeTable (SomeColumn)';
END IF;
END;
Run Code Online (Sandbox Code Playgroud)