问题列表 - 第14580页

NSRunAlertPanel() 在主线程之外?

我在使用可可开发的应用程序中偶然发现了一个问题。我需要做一些处理,并且我在一个单独的线程上进行。我这样做是为了可以使用 NSProgressIndicator 显示进度,而不是挂起主线程。(如果用户愿意,可以取消执行)。

它几乎工作完美,但有一个问题:处理过程会产生大量文件,如果这些文件中的一个或多个已经存在,我想询问用户是否可以在实际执行此操作之前覆盖它们。所以我尝试从处理线程使用 NSRunAlertPanel() 。

有时它会起作用。其他时候,警报面板会闪烁,在我点击它之前无特殊原因关闭,或者根本不出现。所以我认为 NSRunAlertPanel() 可能不是线程安全的,这是由于竞争条件而发生的。

我想知道:除了使用计时器不断轮询处理线程以了解主线程的进度之外,还有什么方法可以解决此问题?

从主线程以外的任何线程使用 GUI 本质上是不安全的吗?

提前致谢。

编辑:我正在按照马克的指示进行操作,但仍然有问题,因为我的 NSAlerts (我现在也在使用)仍然消失。这是我的处理线程。

- (void)doProcess:(id)param
{
    // ...
    [self performSelectorOnMainThread:@selector(askForConfirmation) withObject:nil waitUntilDone:YES];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后在我的主线程上:

- (void)askForConfirmation
{
    [[NSAlert alertWithMessageText:@"Test." defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Testing."] runModal];
}

- (IBAction)startProcessing:(id)sender
{
    // ...
    [NSThread detachNewThreadSelector:@selector(doProcess:) toTarget:self withObject:nil];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

cocoa multithreading objective-c

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

用于C#程序员的C++或Python?

我是一名企业C#程序员.我找到了一些时间来投资自己并陷入两难境地.从现在开始去哪儿?C#/ .NET很容易学习,开发等等.将来我想申请微软或谷歌,并希望明智地投入业余时间,所以我将学到的东西将来会蓬勃发展.

那么:C#程序员的Python或C++?我有点害怕C++,因为在其中开发任何东西都需要很长时间.Python很简单,但我认为它是一种儿童游戏语言,它仍然需要大量修补才能成为一种成熟的开发工具/语言.

任何具有相同困境的C#开发人员?

c# c++ python

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

是否可以在Visual Studio 2008和Visual Source Safe 6.0中使用WinMerge?

我想从解决方案资源管理器中使用WinMerge作为VS2008中的默认diff工具来代替"Compare ..."上下文菜单项.这可能吗?我正在寻找一个快速替换当前的平淡差异工具,我更喜欢WinMerge.我没有兴趣去文件夹资源管理器并在那里进行比较.

我使用Visual Source Safe 6.0而不是TFS

visual-sourcesafe winmerge visual-studio

9
推荐指数
3
解决办法
5526
查看次数

我可以使用Perl的解压缩将字符串分解为变量吗?

我有一个图像文件名,由四部分组成:

  1. $Directory (图像所在的目录)
  2. $Name (对于一个艺术网站,这是绘画名称参考#)
  3. $File (图像文件名减去扩展名)
  4. $Extension (图片扩展名)
$example 100020003000.png
Run Code Online (Sandbox Code Playgroud)

我希望相应地分解它:

$dir=1000 $name=2000 $file=3000 $ext=.png
Run Code Online (Sandbox Code Playgroud)

我想知道substr是否是分解传入的最佳选择,$example所以我可以使用4个变量来完成这些操作,例如验证/错误检查,从其$Name赋值中获取详细名称等等.我发现这篇文章:

解压缩比substr更快? 所以,在我的初学者"石头工具"的方法:

my $example = "100020003000.png";
my $dir = substr($example, 0,4);
my $name = substr($example, 5,4);
my $file = substr($example, 9,4);
my $ext = substr($example, 14,3); # will add the the  "." later #
Run Code Online (Sandbox Code Playgroud)

那么,我可以使用解压缩,或者甚至是更高效的其他方法吗?

我还想避免加载任何模块,除非这样做会因为某些原因使用更少的资源.Mod是我luv'em的好工具,但我认为这里没有必要.

我意识到我应该将vars推入数组/ hash,但是,我真的是一个初学者,我需要进一步指导如何做到这一点以及如何将它们拉回来.

感谢stackoverflow.com上的所有人!

perl unpack substr

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

这几天用C编程了哪些应用程序?

当我在20年前的大学时,C是我们选择的语言,因为当时它几乎是城里唯一的通用编程语言游戏.我们学会了使用C编程.它用于系统编程,数据结构,操作系统以及其他所有东西.基于文本的控制台I/O是与计算机交互的主要方式.图形用户界面很少见,网络编程根本不存在.

向前推进20多年.我们有很多专业的语言.例如,PHP适用于Web编程.用C编写Web应用程序会很疯狂,但同样用PHP进行系统编程也是疯狂的.

我不再写C了.可以这么说,我已经离开了这个语言的当前行业用途.我知道它用于内核开发,微控制器等.还有什么?

使用C的关键行业是什么,因为它是这项工作的最佳语言?对于哪种应用是C的首选?

c programming-languages

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

jQuery这个名字的由来

这似乎是一个奇怪的问题,但有谁知道jQuery名称的起源?它是如何被称为"jQuery"的?

jquery

15
推荐指数
2
解决办法
2961
查看次数

Google Friend Connect如何在不需要将文件上传到客户端域的情况下实现跨域通信?

以前,Google的Friend Connect要求用户将几个文件上传到他们的网站以启用跨域通信,而Facebook Connect仍然要求您上传单个文件以启用它.

现在,Friend Connect不需要任何文件上传......我想知道他们是如何实现这一目标的.

参考:http: //www.techcrunch.com/2009/10/02/easy-does-it-google-friend-connect-one-ups-facebook-connects-install-wizard/

javascript xss cross-domain

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

将变量名称转换为字符串?

我想将python变量名转换为等效的字符串,如图所示.有什么想法?

var = {}
print ???  # Would like to see 'var'
something_else = 3
print ???  # Would print 'something_else'
Run Code Online (Sandbox Code Playgroud)

python string variables

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

分配'onmouseover'事件处理程序

请告诉我这段代码有什么问题:

 <script type="text/javascript" >

function createimg()
       {
         var img = new Image();
       img.src='link/to/image';
       img.alt='Next image';  img.id = 'span1'; img.style.zIndex = 10;
       img.style.position = 'absolute';  img.style.display='block'; img.style.top = '130px';
       img.style.padding='10px'; img.style.left='440px';    img.className ='dynamicSpan';
        document.body.appendChild(img);
        return img;
        }

    function al()
    {
     alert('loaded');
    }
   a = createimg();

    a.onmouseover = al();

</script>
Run Code Online (Sandbox Code Playgroud)

具体到最后一部分,我试图分配a的'onmouseover'事件处理程序,它是一个图像元素.它不会出于某种原因分配此事件处理程序,而只是在页面加载时执行该函数.

怎么了?

托尼

javascript

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

XSL解析缩短了脚本标记,导致IE中出现问题

我有一个C#应用程序,它通过使用xsl文件转换xml文件来生成html文档.在我的xsl模板中,我引用了一个外部javascript文件,如下所示:

<script language="javascript" type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" ></script>
Run Code Online (Sandbox Code Playgroud)

在转换之后,前一行被转换为:

<script language="javascript" type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" />
Run Code Online (Sandbox Code Playgroud)

对于Firefox和Chrome,这没有问题,但是IE会抛出"找不到对象"错误并且不起作用.有任何建议让IE喜欢这种语法吗?或者我需要在xsl(或C#XslCompiledTransform类)中做些什么才能保留语法?

解决方案:通过<![CDATA[ <!-- Some Comment --> ]]>在脚本标记之间放置,解析器不会尝试缩短结束标记.

javascript internet-explorer

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