问题列表 - 第14802页

Windows窗体上的多线程

我想paralelize建立在Windows窗体顶部的3D体素编辑器,它采用了raycaster来呈现这样将屏幕并获得在池中的每个线程渲染它的一部分应该是微不足道的.

问题出现在Windows窗体的线程必须作为STA运行 - 我可以让其他线程启动并完成工作但在等待它们完成时阻塞主线程导致奇怪的随机死锁如预期的那样.

保持主线程不被阻塞也是一个问题 - 例如,如果用户使用填充工具,则在渲染过程中将处理输入,这将导致"中间"图像(例如,部分着色的对象).在每帧之前复制整个图像是不可行的,因为如果必须每帧复制,则卷足够大以抵消任何性能增益.

我想知道是否有任何解决方法可以让amin线程以不会被实际阻止的方式阻止用户,但会将输入处理延迟到下一帧.

如果不可能,有没有更好的设计来处理这个?

编辑:阅读原文我认为我不清楚raycaster是否实时运行,因此显示进度对话框根本不起作用.不幸的是,帧之间的输入FPS足够低(5-40取决于各种因素)以产生不希望的结果.

我已经尝试实现它阻止UI线程并使用ThreadPool的一些线程进行处理,除了STA的这个问题之外它工作正常.

c# multithreading winforms

0
推荐指数
1
解决办法
812
查看次数

渲染矢量形状在Java中

我有一系列形状(约50),每个有5个点和一个颜色(具有alpha透明度).我想将这些形状渲染到像素网格上.

我作为业余爱好者编程,所以我不知道该怎么做才能做到这一点.

有人能给我一个起点,还是一些伪代码?

提前致谢.

java graphics vector-graphics

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

滥用"冻结代码"一词

我很好奇社区是否认为在我们停止开发的情况下使用"Code Freeze"一词是可以接受的,除了测试和修复bug.

发展情况

我们刚刚完成了我们的第三次也是最后一次冲刺,之后将进行"代码冻结"和2周的Q/A测试.这是一个很大的发布,一些组件开发超越了所有3个sprint.从历史上看,即使我们将其称为"代码冻结",我们仍然会提交代码来修复错误.

问题

每一个版本我都会尝试并纠正我的经理和同事,我们应该将其称为"功能冻结",因为很明显我们会在我们开始大量测试后立即找到错误并提交代码来修复它们.但是他们仍然坚持称其为"Code Freeze".有时我们仍然知道错误并声明"代码冻结".

维基百科的定义在这里似乎与我一致

分析

我怀疑将这些情况称为"代码冻结"是某种故意的双重思考,为利益相关者提供虚假的信心.或者我们假装处于"Code Freeze"状态,因为根据Scrum的说法,在每个sprint之后我们都应该有一个可发送的软件,这是我们对Scrum的期望.所以我们必须把它称之为Scrum所期望的而不是它真正的本质.

结论

我在分析这个吗?我只是发现忽视情况的现实是不健康的,应该放弃它,称之为不是或者解决根本问题.还有其他人有过与Code Freezes类似的经历吗?

testing agile scrum process code-freeze

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

你见过的一个相对知名的图书馆最丑陋的API,以及为什么以及如何改进?

我一直在研究Lucene 2.9特别是重做令牌流API之间的差异,它只是发生在我身上它特别难看,相比旧的只是返回一个新的或重新填充给定的值,如果你重用说Token.

我没有做任何分析,但似乎使用MAP来存储属性并不是那么有效,并且更容易创建一个包含值等的新值类型.TokenStream和Attribute的东西看起来像对象池,这几乎是不必要的这些天来,对于简单的值类型,如文本标记.

coding-style code-readability

7
推荐指数
3
解决办法
1744
查看次数

PLTScheme如何捕获错误?

我很惊讶PLTScheme中的"错误"功能.如果我有一个除零,它不会做任何其他递归,只是从调用堆栈出来并给我一个错误.

在所有功能之前是否存在隐含的延续?错误是否会丢弃调用堆栈?有没有人对此有任何想法?

scheme continuations racket

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

UITableView组样式上的黑角

我有一个问题,我的UITableView(组样式)在它的圆角上方有一个黑色的"尖端".

我正在设置tableview的背景,如下所示:

[meetingTableView setBackgroundColor:[[UIColor alloc] initWithPatternImage:[[UIImage alloc] initWithContentsOfFile:@"background.png"]]];
Run Code Online (Sandbox Code Playgroud)

我的表视图最终看起来像这样:

圆角上的黑色尖尖边缘http://papernapkin.org/pastebin/resource/images/imageEntryId/6487

我有什么想法可以摆脱那些黑点?

iphone cocoa-touch iphone-sdk-3.1

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

将内容写入markdown时,将内容作为html存储在数据库中是最佳做法吗?

或者只是保存降价并将其呈现在请求上通常可以吗?

我正在编写一个使用markdown进行内容的网站.堆栈溢出同样使用markdown来评论和提问.

我将内容作为markdown存储在数据库中,然后在用户访问站点时将其呈现为html.

我有一种感觉,我应该将markdown和html输出存储在数据库中,以减少服务器上的负载.然而,现在表现似乎不是一个问题(着名的遗言.)

这是一个使用rdiscount gem转换降价的rails网站.

markdown ruby-on-rails

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

如何减少Netbeans的内存使用量?

使用netbeans编辑PHP项目时,IDE可以(随着时间的推移)使用400+ MB的内存.有没有办法关闭某些功能或其他技巧来减少其内存使用?

php netbeans memory-management

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

汇编中的跳转指令如何与多个进程一起工作?

所以,我对跳转指令在操作系统中的工作原理感到困惑.我认为跳转指令设置处理器程序计数器中的值.但程序可以在内存中的不同位置运行.我看到在x86中,有JMP EAX指令,但我的C++代码似乎没有使用它.我在VC++中编译了一些C++代码:

int main()
{
    int i = 0;
    while (i < 10)
    {
        ++i;
        if (i == 7)
        {
            i += 1;
            continue;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这意味着:

    int main()
    {
00411370  push        ebp  
00411371  mov         ebp,esp 
00411373  sub         esp,0CCh 
00411379  push        ebx  
0041137A  push        esi  
0041137B  push        edi  
0041137C  lea         edi,[ebp-0CCh] 
00411382  mov         ecx,33h 
00411387  mov         eax,0CCCCCCCCh 
0041138C  rep stos    dword ptr es:[edi] 
        int i = 0;
0041138E  mov         dword ptr [i],0 
        while (i < 10)
00411395 …
Run Code Online (Sandbox Code Playgroud)

assembly operating-system

6
推荐指数
2
解决办法
3739
查看次数

在Vim中插入单个字符进行原子操作

我在vim中长期使用这个非常有用的快捷方式:

nmap <space> i <esc>r
Run Code Online (Sandbox Code Playgroud)

这意味着,如果我按下spacef,例如,它将f在给定位置插入一个字符.

然而,不幸的是,这不是原子的,即,如果我按下spacef然后导航到其他地方,然后按.,我得到相当于rf,而不是spacef.

所有这些都是有道理的,但问题是:有没有办法制作这个原子,这样.就会重复'插入字符'操作,所以撤消等都将它视为一个操作呢?

vim

19
推荐指数
2
解决办法
2916
查看次数