问题列表 - 第47966页

旋转图形?

我有这个代码,绘制图像.

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)

然而我该如何旋转呢?

c#

11
推荐指数
2
解决办法
3万
查看次数

显示在Oracle中锁定的行

使用Oracle,是否可以在执行select语句时指示当前哪些行已锁定(哪些行未锁定)(我不想锁定任何行,仅能显示哪些行已锁定)?

例如,一个伪列将返回对该行的锁定/事务:
SELECT lockname FROM emp;

oracle locking

2
推荐指数
1
解决办法
6468
查看次数

在IE中绕过JavaScript长时间运行的警告对话框

我需要在我的页面上运行超长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.如果样式键不存在,请创建一个名为样式的新键.

谢谢,

javascript internet-explorer

7
推荐指数
1
解决办法
1万
查看次数

我们是否应该始终在第一行中检查java中方法的每个参数是否为null?

每个方法都接受一组参数值.我们是否应该始终验证输入参数的非零值或允许代码失败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)

java validation parameters methods null

23
推荐指数
2
解决办法
2万
查看次数

.net Dictionary.Resize()异常 - 线程安全?


我们有一个非常严重的问题,每分钟造成数千个异常.我们有一个运行本土缓存机制的网站,该机制以下列形式保存数据:

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(...)除外

任何帮助将不胜感激.

非常感谢.

.net dictionary thread-safety c#-3.0

3
推荐指数
1
解决办法
2455
查看次数

在Java中哈希

我有一个Long和一个String.我想创建这两个对象的哈希.意思是,我想要一些函数来获取任意数量的对象并返回一个哈希值.这样的功能会退出吗?

像这样的东西:


public int getHash(Object... objects)
{
     //somehow returns a hash of all these objects
}

java hash

3
推荐指数
2
解决办法
271
查看次数

C#; 重定向过程标准错误,但不是标准输出

我正在为一个解释性编程语言编写一个小编辑器.当程序运行时,编辑器(用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)

我甚至不确定是什么导致输出不被写入.否则,程序完全按预期运行.有没有办法让标准输出仍然写入控制台,同时仍然读取标准错误?或者有更好的方法从解释器进程获取错误指示?谢谢.

c# redirect process

4
推荐指数
1
解决办法
4833
查看次数

ORM在哪里容易受到SQL注入攻击?

当使用ORM(实体框架,LINQ to SQL,NHibernate ......)时,SQL注入攻击是否受到设计的缓解?

如果没有,我应该在哪里进行一些额外的验证/清理以防止漏洞?

nhibernate orm entity-framework sql-injection

10
推荐指数
1
解决办法
4743
查看次数

在日志消息之前添加当前时间

我为我的应用程序创建了一个名为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到我的日志消息,但我想知道是否有办法将其添加为每个日志消息的默认值.我怎样才能做到这一点 ?

谢谢.

ruby logging timestamp ruby-on-rails

17
推荐指数
2
解决办法
1万
查看次数

当使用`average()`时,如何在AREL中使用`to_sql`?

我正在尝试从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?

activerecord ruby-on-rails-3

15
推荐指数
1
解决办法
7388
查看次数