我在一个旧线程上找到了这个代码来关闭本地机器:
using System.Management;
void Shutdown()
{
ManagementBaseObject mboShutdown = null;
ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem");
mcWin32.Get();
// You can't shutdown without security privileges
mcWin32.Scope.Options.EnablePrivileges = true;
ManagementBaseObject mboShutdownParams =
mcWin32.GetMethodParameters("Win32Shutdown");
// Flag 1 means we want to shut down the system. Use "2" to reboot.
mboShutdownParams["Flags"] = "1";
mboShutdownParams["Reserved"] = "0";
foreach (ManagementObject manObj in mcWin32.GetInstances())
{
mboShutdown = manObj.InvokeMethod("Win32Shutdown",
mboShutdownParams, null);
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用类似的WMI方法重启标志"2"远程机器,我只有机器名,而不是IPaddress.
编辑:我目前有:
SearchResultCollection allMachinesCollected = machineSearch.FindAll();
Methods myMethods = new Methods();
string pcName;
ArrayList allComputers = …Run Code Online (Sandbox Code Playgroud) 在SICP练习2.26中,给出了这个方案代码:
(define x (list 1 2 3))
(define y (list 4 5 6))
Run Code Online (Sandbox Code Playgroud)
然后给出这个利弊电话:
(cons x y)
Run Code Online (Sandbox Code Playgroud)
我预计会产生一对列表,((1 2 3) (4 5 6))但解释器会给出
((1 2 3) 4 5 6)
一个包含4个元素的列表,第一个是列表.为什么y对待不同?我已经尝试查找其他SICP答案的解释,但找不到令人满意的东西.那么,任何Scheme/Lisp专家都能对这方面的缺点有所了解吗?提前感谢您的任何见解.
当我第一次开始使用Qt时,每个班级的名字都以"Q"开头是非常烦人的,但现在我已经习惯了.
我正在使用Qt Creator,它很好地突出了代码.
但是,它只突出显示以"Q"开头的类名.它突出了以'Q'开头的一切,即使没有这种类型.
它不会突出显示自定义类名.
这让我想知道,我是否也应该用'Q'开始我的所有课程名称?
或者至少是可重复使用的?
(我的意思是,我放在类库中,或在其他应用程序中重用.)
我见过几个地方,他们用这种方式命名他们的课程.这是好事吗?
我找到了关于Qt命名约定的这个页面,但它没有解决这个问题.
另外,我不明白为什么Qt不使用命名空间.
编辑:
非常感谢与我分享他的想法的每个人.
编辑2:
似乎较新版本的Qt Creator现在也突出了不以'Q'开头的类名.太好了!
我有一个在TransactionScope中运行的代码块,在这段代码中,我多次调用DB.选择,更新,创建和删除整个色域.当我执行删除操作时,我使用SqlCommand的扩展方法执行它,如果查询死锁,它将自动重新提交查询,因为此查询可能会遇到死锁.
我相信当遇到死锁并且函数尝试重新提交查询时会发生此问题.这是我收到的错误:
与当前连接关联的事务已完成但尚未处理.必须先处理事务,然后才能使用连接执行SQL语句.
这是执行查询的简单代码(下面的所有代码都在使用TransactionScope执行):
using (sqlCommand.Connection = new SqlConnection(ConnectionStrings.App))
{
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQueryWithDeadlockHandling();
}
Run Code Online (Sandbox Code Playgroud)
以下是重新提交死锁查询的扩展方法:
public static class SqlCommandExtender
{
private const int DEADLOCK_ERROR = 1205;
private const int MAXIMUM_DEADLOCK_RETRIES = 5;
private const int SLEEP_INCREMENT = 100;
public static void ExecuteNonQueryWithDeadlockHandling(this SqlCommand sqlCommand)
{
int count = 0;
SqlException deadlockException = null;
do
{
if (count > 0) Thread.Sleep(count * SLEEP_INCREMENT);
deadlockException = ExecuteNonQuery(sqlCommand);
count++;
}
while (deadlockException != null && count < MAXIMUM_DEADLOCK_RETRIES);
if (deadlockException != null) throw deadlockException; …Run Code Online (Sandbox Code Playgroud) 我有一个包含DependencyProperty(MyProperty)的WPF UserControl.
DependencyProperty绑定到DataContext中的Property.
现在在UserControl中我想更改bound属性的值.但是,如果我指定MyProperty = NewValueBinding丢失并替换为NewValue.
我想要实现的是更改DependencyProperty绑定的DataContext属性.
我如何实现这一点而不是改变绑定?
澄清:使用类似MyTextBox.Text = "0";我将释放绑定的东西.如何设置Text,保持绑定完整,因此绑定的属性也将更改.
我刚刚在一些Exchange 2010代码中遇到过这段代码片段,我想知道是否有人知道程序员为什么这样做了.我从未见过像这样格式化的If语句.它看起来如此倒退必定有一个很好的理由吗?
if (true == MsgItem.HasAttachments)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
我假设它可能会对编码相同内容的各种其他方式进行一些优化;
if (MsgItem.HasAttachments)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
要么
if (MsgItem.HasAttachments == true)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
这不是什么大不了我只是好奇.
谢谢,迈克
更新:感谢所有有趣的观点.摘要似乎归结为传统编码标准.
我正在努力确保我的Java应用程序采取合理的步骤来保持健壮,其中一部分涉及优雅地关闭.我正在阅读有关关闭钩子的事情,我实际上并没有在实践中如何使用它们.
那里有一个实际的例子吗?
Let's say I had a really simple application like this one below, which writes numbers to a file, 10 to a line, in batches of 100, and I want to make sure a given batch finishes if the program is interrupted. I get how to register a shutdown hook but I have no idea how to integrate that into my application. Any suggestions?
package com.example.test.concurrency;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
public class GracefulShutdownTest1 …Run Code Online (Sandbox Code Playgroud) 我在这样的一个页面中有2个框架(home.html)
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame id="treeStatus" src="treeStatus.html" />
</frameset>
Run Code Online (Sandbox Code Playgroud)
然后在一个框架(treeStatus.html)中我有类似的东西
<body style="margin: 0px">
<div id="statusText">Status bar for Tree</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我希望从顶部窗口通过jquery操作位于子框架中的div(例如show和hide).
$(document).ready(function(){
$('#treeStatus').contents().find("#statusText").hide();
});
Run Code Online (Sandbox Code Playgroud)
我不知道这是否适用于iframe,但在我的情况下,我有简单的框架它似乎不起作用.代码放在home.html中
这是来自firebug控制台的一些输出
>>> $('#treeStatus')
[frame#treeStatus]
>>> $('#treeStatus').contents()
[]
>>> $('#treeStatus').children()
[]
Run Code Online (Sandbox Code Playgroud)
那么如何从顶部框架访问框架元素?我在这里错过了什么吗?
回答
在这里结合两个答案后,正确的方法是
$('#statusText',top.frames["treeStatus"].document).hide();
Run Code Online (Sandbox Code Playgroud)
为此,框架必须具有除id之外的name属性,如下所示:
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame name="treeStatus" id="treeStatus" src="treeStatus.html" />
</frameset>
Run Code Online (Sandbox Code Playgroud) 不希望是主观的,但我需要从XML源获取数据并将其转换为(X)HTML.根据我的理解,我可以使用PHP(或其他服务器端脚本),Javascript或XSLT来完成此操作.我的感觉是,使用XSLT更合适,因为它处理的是XML源,这就是XSLT存在的目的.我还看到它的优势在于,如果用户没有启用Javascript并且不会被限制为运行PHP(或其他服务器端脚本)的服务器,它仍然可以工作.我的假设是对的吗?
RSS提要也可以相同吗?
谢谢