我有这个代码,绘制图像.
private void timer1_Tick(object sender, EventArgs e)
{
Invalidate();
}
protected override void OnPaint(PaintEventArgs e)
{
var tempRocket = new Bitmap(Properties.Resources.rocket);
using (var g = Graphics.FromImage(tempRocket))
{
e.Graphics.DrawImage(tempRocket, 150, 150);
}
}
Run Code Online (Sandbox Code Playgroud)
然而我该如何旋转呢?
使用Oracle,是否可以在执行select语句时指示当前哪些行已锁定(哪些行未锁定)(我不想锁定任何行,仅能显示哪些行已锁定)?
例如,一个伪列将返回对该行的锁定/事务:
SELECT lockname FROM emp;
我需要在我的页面上运行超长JavaScript.客户端抱怨IE显示脚本太长的警告对话框.不幸的是,我们无法减少脚本的长度,所以我试图找到问题的旁路.
根据微软支持网站:
IE跟踪已执行脚本语句的总数,并在每次启动新脚本时重置该值,例如从超时或事件处理程序.当该值超过阈值量时,它会显示"长时间运行的脚本"对话框.
但是我尝试使用setInterval()和setTimeout()将我的脚本分成几部分,但没有一个正常工作.我使用的浏览器是IE8.我的代码如下:
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script>
</head>
<body>
<div id ="test"></div>
<div id ="log"></div>
</body>
<script>
var repeat =0;
function heavyTask(){
if (repeat<50){
y = longRun();
setTimeout("heavyTask()",100);
}else{
$('#test').html("done!");
}
}
function longRun(){
for(var i =0; i<20000;i++){ }
repeat++;
$('#log').append('<div>repeat: '+ repeat +'</div>');
};
$(document).ready(function () {
setTimeout("heavyTask()",100);
});
</script></html>
Run Code Online (Sandbox Code Playgroud)
为了使代码有效,您必须编辑Registry,转到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles,并将名为"MaxScriptStatements"的DWORD值设置为100,000.如果样式键不存在,请创建一个名为样式的新键.
谢谢,
每个方法都接受一组参数值.我们是否应该始终验证输入参数的非零值或允许代码失败RunTimeException?
我看过很多代码,人们并没有真正检查输入参数的空值,只是使用参数编写业务逻辑.什么是最好的方法?
void public( String a, Integer b, Object c)
{
if( a == null || b == null || c == null)
{
throw new RunTimeException("Message...");
}
.....business logic.....
}
Run Code Online (Sandbox Code Playgroud)
我们有一个非常严重的问题,每分钟造成数千个异常.我们有一个运行本土缓存机制的网站,该机制以下列形式保存数据:
protected static IDictionary<int, IList<IInterfaceForData>> m_Data = null;
Run Code Online (Sandbox Code Playgroud)
当我们在这个字典上调用Add时,我们得到一个非常奇怪的行为:" 索引超出了数组的范围 ",当密钥100%不在字典中时:
m_Data.Add(id, new List<IInterfaceForData>());
Run Code Online (Sandbox Code Playgroud)
我们使用这样的锁来保护这个电话:
if(Monitor.TryEnter(m_LockObj, 1000))
{
try
{
m_Data.Add(id, new List<IInterfaceForData>());
}
catch(Exception ex)
{
// log exception
}
finally
{
Monitor.Exit(m_LockObj);
}
}
Run Code Online (Sandbox Code Playgroud)
我们得到这个例外:
at System.Collections.Generic.Dictionary`2.Resize() at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
Run Code Online (Sandbox Code Playgroud)
我们找不到任何解释,因为异常与Dictionary的线程安全有关,我们(认为我们)是线程安全的.我们在每个Add()和Remove()调用上使用lock()或Monitor.TryEnter,m_Data.TryGetValue(...)除外
任何帮助将不胜感激.
非常感谢.
我有一个Long和一个String.我想创建这两个对象的哈希.意思是,我想要一些函数来获取任意数量的对象并返回一个哈希值.这样的功能会退出吗?
像这样的东西:
public int getHash(Object... objects)
{
//somehow returns a hash of all these objects
}
我正在为一个解释性编程语言编写一个小编辑器.当程序运行时,编辑器(用C#编写)创建一个触发解释器的新进程(用C++编写).控制台看起来像任何其他C++程序一样,显示程序的输出.
当解释器(即C++程序)在代码中遇到错误时,会将一条消息打印到标准错误,指示错误类型和发生错误的行号.我想要做的是从编辑器中读取解释器的标准错误,因此编辑器可以突出显示错误行,如错误消息中所示.
不幸的是,下面的代码(设计用于读取只标准误差),不知何故会导致无法打印到控制台以及程序的标准输出!
private void indicateErrorTest(object sendingProcess, DataReceivedEventArgs outLine)
{
MessageBox.Show(outLine.Data);
}
private void run()
{
program = new Process();
program.StartInfo.FileName = INTERPRETER_PATH;
program.StartInfo.Arguments = "\"" + relativeFilename + "\"";
program.StartInfo.RedirectStandardError = true;
program.StartInfo.UseShellExecute = false;
program.ErrorDataReceived += new DataReceivedEventHandler(indicateErrorTest);
program.Start();
program.BeginErrorReadLine();
program.EnableRaisingEvents = true;
program.Exited += new System.EventHandler(onProgramConsoleClose);
}
Run Code Online (Sandbox Code Playgroud)
我甚至不确定是什么导致输出不被写入.否则,程序完全按预期运行.有没有办法让标准输出仍然写入控制台,同时仍然读取标准错误?或者有更好的方法从解释器进程获取错误指示?谢谢.
当使用ORM(实体框架,LINQ to SQL,NHibernate ......)时,SQL注入攻击是否受到设计的缓解?
如果没有,我应该在哪里进行一些额外的验证/清理以防止漏洞?
我为我的应用程序创建了一个名为CRON_LOG的自定义记录器,只需将这段代码添加到config/environment.rb中
CRON_LOG = Logger.new("#{Rails.root}/log/cron.log")
CRON_LOG.level = Logger::INFO
Run Code Online (Sandbox Code Playgroud)
然后,当我想记录某些东西时,就这样做:
CRON_LOG.info "something"
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我想在每条日志消息之前添加当前时间戳.当然我可以添加Time.now到我的日志消息,但我想知道是否有办法将其添加为每个日志消息的默认值.我怎样才能做到这一点 ?
谢谢.
我正在尝试从AREL获取SQL,但是在我使用的情况下它不起作用average(:stars):
这有效:
Review.where("reviewed_user_id = ?", self.reviewed_user_id).to_sql
#=> "SELECT `reviews`.* FROM `reviews` WHERE (reviewed_user_id = 3)"
Run Code Online (Sandbox Code Playgroud)
这导致NoMethodError:
Review.where("reviewed_user_id = ?", self.reviewed_user_id).average(:stars).to_sql
#=> undefined method `to_sql' for 3:Fixnum
Run Code Online (Sandbox Code Playgroud)
这意味着to_sql调用AREL的结果而不是AREL对象 - 但为什么呢?
如何获取生成的SQL?
c# ×2
java ×2
.net ×1
activerecord ×1
c#-3.0 ×1
dictionary ×1
hash ×1
javascript ×1
locking ×1
logging ×1
methods ×1
nhibernate ×1
null ×1
oracle ×1
orm ×1
parameters ×1
process ×1
redirect ×1
ruby ×1
timestamp ×1
validation ×1