小编ang*_*son的帖子

是否有针对.NET 2.0的超薄读写器锁?

我查看了.NET 2.0中的ReaderWriterLock和.NET 3.5中的ReaderWriterLockSlim,而slim版本不使用内核对象进行锁定.对于我的上下文,它可能会产生大量(但不是很大)的对象,这听起来更好.

但是我编写的代码需要在过渡期间在.NET 2.0和3.5中使用,因此3.5版本虽然看起来很适合我的目的但却无法使用.

是否有人拥有或知道类似的类,我可以插入.NET 2.0并获得一些相同的好处?

.net multithreading locking

5
推荐指数
1
解决办法
1907
查看次数

块级同步

传递给synchronized的参数有什么意义?

synchronized ( parameter )
{

}
Run Code Online (Sandbox Code Playgroud)

实现块级同步.在某处,我看到了代码

class test
{
    public static final int lock =1;

    ...

    synchronized(lock){
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白这段代码的目的.

谁能给我一个更好的例子和/或解释它?

java synchronization

5
推荐指数
2
解决办法
9904
查看次数

从字符串中获取数字

我有一个字符串:

"1|2 3 4 oh 5 oh oh|e eewrewr|7|".
Run Code Online (Sandbox Code Playgroud)

我想得到第一个管道(|)之间的数字,返回"2 3 4 5".

任何人都可以帮助我使用正则表达式来做到这一点吗?

ruby regex

5
推荐指数
2
解决办法
7410
查看次数

减少编程

有时为了使变量/方法/类名称具有描述性,我需要使其更长.但我不想,我想要有易于阅读的短名称.所以我想到了像Visual Studio这样的IDE的特殊插件,能够为类,方法,字段编写短名称,但能够附加长名称.如果你需要 - 你可以做到这一切,或者你可以长单名.如果你想减少它 - 使用减少,就像两个相同代码的视图一样.我想知道其他人在想什么?你觉得它有用吗?有人会使用那种插件吗?

.net c# vb.net ide

5
推荐指数
3
解决办法
475
查看次数

用于在网页上显示源代码的格式

我正在研究Markdown命令行程序,我想在html输出中格式化源代码块比简单更好<pre><code>....</code></pre>.

我的标准是:

  1. 我想要在每行前面显示行号
  2. 我希望代码本身是可选择的,这样我只能将代码(而不是行号)复制到剪贴板

我试图使用DIV,因为表似乎格式不好,但我对任何事情持开放态度.

我尝试了什么:

  • 具有单行的表,单元1是预/代码格式的行号块,单元2是源代码.问题:带行号的第一列总是占用大量空间(自动调整宽度似乎变得困惑)
  • 具有多行的表,与具有1行的一行相同的问题
  • DIV,我似乎无法让DIV以我想要的方式布局

任何人都可以给我一个如何获得我想要的指针吗?

这是一个示例(明显的限制是我使用Markdown来显示这里的示例):

01 |  Source code line 1
02 |  Source code line 2
03 |  Last line of source code
Run Code Online (Sandbox Code Playgroud)

现在,如果我在第一行单击并选择,并向下拖动多行,我不希望选择包含行号列,否则这将很容易.

那么,任何指针?

我不需要的一个奖励功能是,如果我使窗口太窄而不能包含源代码,我不需要将它分成两行.我能理解该功能如何工作的唯一方法是单独格式化每一行,而不是单独格式化每一行,以便在发生换行时调整行号.由于我希望只能复制源代码,因此我认为我需要自己格式化每个列.

这是我尝试过的东西:

<html><body>
<style>
.lines
{
    background-color: #c0c0ff;
    border-left: 1px solid black;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    float: left;
    border-right: 1px solid #a0a0a0;
    margin-left: 20px;
    padding-left: 2px;
    padding-right: 2px;
}
.code
{
    background-color: #c0c0ff;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    float: …
Run Code Online (Sandbox Code Playgroud)

html css

5
推荐指数
1
解决办法
8504
查看次数

足够调用Children.Clear在WPF画布上删除旧控件之前添加新控件?

我正在尝试使用WPF并重新实现我的旧迷宫屏幕保护程序.

我的代码基本上将一堆图像添加到画布,并排构建一个网格,64x64像素图像,以覆盖整个画布.然后我通过调整平移变换并交换图像,在迷宫中"动画"运动,该运动应该围绕迷宫滚动.

但是,我似乎有某种泄漏.每当我调整窗口大小时,我都想重新构建图像组件,以便再次覆盖表单,或者使用更多或更少的图像.

如果我将形式的左下角拖动到紧密的圆圈中,则重建部分会变得越来越慢.

要删除旧控件我只是这样做:

_Canvas.Children.Clear();
Run Code Online (Sandbox Code Playgroud)

这够了吗?由于减速,我认为不是.

然而,由于迷宫目前没有被"头像""发现",迷宫图像以25%的不透明度绘制,我认为如果我没有移除它们,我会得到很多图像在彼此之上,但它似乎也不是那样.

我正在缓存图像源,图像组件是这样创建的:

_Images = new Image[(int)width, (int)height];
for (int x = -1; x < width - 1; x++)
{
    for (int y = -1; y < height - 1; y++)
    {
        Image i = new Image();
        i.Width = 64;
        i.Height = 64;
        i.Source = _Outside;
        Canvas.SetLeft(i, x * 64);
        Canvas.SetTop(i, y * 64);
        _Canvas.Children.Add(i);
        _Images[x + 1, y + 1] = i;
    }
}
Run Code Online (Sandbox Code Playgroud)

之后他们会分配图像来显示如下:

Maze.Square sq = _Maze[_TopLeftMazeX + x, _TopLeftMazeY + …
Run Code Online (Sandbox Code Playgroud)

c# wpf children canvas slowdown

5
推荐指数
1
解决办法
9549
查看次数

是否有可能"欺骗"PrintScreen,在捕获之前用其他东西替换我的表单内容?

我有点挑战.

在我们产品的早期版本中,我们有一个错误消息窗口(最后的手段,未处理的异常),它显示了异常消息,类型,堆栈跟踪+各种信息.

这个窗口是打印屏幕友好的,因为如果用户只是做了一个打印屏幕捕获,并通过电子邮件发送给我们屏幕截图,我们几乎拥有了开始诊断问题所需的一切.

然而,对于普通用户来说,这种形式被认为过于技术性和"可怕",所以它被归结为一个更友好的形式,仍然显示错误信息,但不是堆栈跟踪和一些更残酷的细节,我仍然喜欢搞定.此外,该表格还增加了向我们发送电子邮件的功能,其中包含我们之前拥有的所有内容以及许多其他技术细节,基本上我们需要的一切.

但是,用户仍然使用PrintScreen来捕获表单的内容并将电子邮件发送给我们,这意味着我现在的信息量不会超过最佳状态.

所以我很想知道.我是否有可能预先渲染一个与我的表格大小相同的位图,我需要的一切,检测到PrintScreen被击中,并在捕获之前用我的位图快速换出表单内容,然后再返回?

在你说"只是教育用户"之前,是的,那是行不通的.这些不是用户,他们是我们客户的用户,所以我们真的不能告诉他们这么多.

或者,除此之外,有没有办法让我检测PrintScreen,告诉Windows忽略它,然后通过将一个前面提到的预渲染位图转储到剪贴板上准备好放入电子邮件来对它作出反应?

代码是.NET 3.5中的C#3.0,如果它很重要,但是要查看/ for的东西的指针就足够了.

我们的错误报告窗口具有以下功能:

  • 显示错误发生时的截图(包含当时程序的所有打开窗口,显示错误对话框之前)
  • 显示一个文本文件,其中包含我们可以想到的每个血腥细节(但没有敏感的东西)
  • 将上述两个文件保存到磁盘,后者附加到用户的电子邮件或其他内容
  • 通过电子邮件将上述两个文件发送给我们,方法是打开新的支持案例,或者输入现有的支持案例编号以向其添加更多信息
  • 忽略问题并希望它消失(返回应用程序)
  • 退出申请(最后的手段)

我们仍然会收到一些用户的截图.不是全部,请注意,所以我的问题基本上是如何让PrintScreen按钮为那些仍在使用它的用户提供更多帮助.

windows detect printscreen

5
推荐指数
1
解决办法
1114
查看次数

查找来自Wordnet的单词,由给定单词的固定编辑距离分隔

我正在使用nltk和wordnet编写一个拼写检查器,我有一些拼写错误的单词说"belive".我想要做的是找到wordnet中的所有单词,这些单词由leveshtein的编辑距离1或2分隔.nltk是否提供了完成此任务的方法?这该怎么做?


可能是,我说错了.该edit_distance方法需要2个参数,例如edit_distance(word1,word2)返回levenshtein在word1和word2之间的距离.我想要的是找到我给出的单词与wordnet中的每个其他单词之间的编辑距离.

python nlp nltk wordnet

5
推荐指数
1
解决办法
1271
查看次数

MonoTouch,NSLog和TestFlightSdk

我正在尝试将TestFlightSdk集成到我使用MonoTouch制作的应用程序中.

我试图在我的应用程序中实现日志记录,以便它被TestFlightSdk拾取.它应该NSLog自动获取ged文本,但我似乎无法找到正确的代码组合添加到我自己的应用程序,用C#/ MonoTouch编写,也是如此.

我尝试过的:

  1. Console.WriteLine("...");
  2. Debug.WriteLine("...");(但我想这只是打电话Console.WriteLine)
  3. 实现支持NSlog,但这使我的应用程序崩溃,显然我做错了(我会问一个新的问题,如果这是前进的方式.)

MonoTouch中是否有内置的东西可以通过NSLog写入日志消息,以便我可以将它与TestFlightSdk一起使用?或者我必须为NSLog滚动自己的包装器?

为了自己实现NSLog,我添加了这个:

public static class Logger
{
    [DllImport("/System/Library/Frameworks/Foundation.framework/Foundation")]
    private extern static void NSLog(string format, string arg1);

    public static void Log(string message)
    {
        NSLog("%s", message);
    }
}
Run Code Online (Sandbox Code Playgroud)

(我从其他SO问题得到了上面的代码片段:如何绑定到iOS基础功能NSLog.)

但这会导致我的应用程序出现SIGSEGV故障.

nslog xamarin.ios testflight

5
推荐指数
1
解决办法
1790
查看次数

从图中删除椭圆?

我是Python新手,也是图形新手!问题是我正在实现基于 EKF 地图的定位,并且我想绘制不确定性椭圆。为此,每次我想用所有值更新图形时,我都会调用一个函数调用 animate,其中包含以下内容:

ellipse = matplotlib.patches.Arc([x_B_1[0,0],x_B_1[0,1]],P_B_1[0,0],P_B_1[1,1],x_B_1[0,2]*180/pi,color='green', linewidth='0.5')
ax.add_patch(ellipse)
Run Code Online (Sandbox Code Playgroud)

还有其他一些东西

问题是,通过这样做,图中的所有省略号都饱和了,我变得一团糟(我无法发布该图的图片,因为这是我的第一篇文章,论坛不允许我这样做),我只想最后一个椭圆。

我该怎么做?


我不能这样做,因为图中的所有内容都丢失了,我只想删除椭圆而不是该图中的其余内容,也许这是不可能的...是否有更新椭圆参数的选项我不绘制新的,而是更新已经绘制的?

干杯!

matplotlib ellipse

5
推荐指数
1
解决办法
1320
查看次数