草庐IT

event-dispatching

全部标签

objective-c - dispatch_get_global_queue vs dispatch_get_main_queue

开始学习核心数据和dispatch_async。有一段代码可以从一组数据中获取图像的url并将其设置为核心数据的模型,如下所示dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),^{NSString*urlString=[[[photoDictionaryvalueForKey:@"images"]objectAtIndex:0]valueForKey:@"url"];NSData*imageData=[NSDatadataWithContentsOfURL:[NSURLURLWithStri

ios - dispatch_get_global_queue 和 dispatch_queue_create 有什么区别?

我正在编写一个中等复杂的iOS程序,它需要有多个线程来执行一些较长的操作(解析、连接到网络等)。但是,我对dispatch_get_global_queue和dispatch_queue_create之间的区别感到困惑。我应该使用哪一个,您能否简单解释一下它们之间的区别?谢谢。 最佳答案 作为documentation描述,全局队列适用于并发任务(即,您将异步调度各种任务,如果它们同时运行,您将非常高兴)并且如果您不想遇到创建和销毁自己的理论开销队列。如果您需要一个串行队列(即您需要一次执行一个已调度的block),创建您自己的队列

objective-c - 主队列上的 dispatch_sync 与 dispatch_async

请耐心等待,这需要一些解释。我有一个类似于下面的函数。上下文:“aProject”是一个名为LPProject的核心数据实体,带有一个名为“memberFiles”的数组,其中包含另一个名为LPFile的核心数据实体的实例。每个LPFile代表磁盘上的一个文件,我们要做的是打开每个文件并解析其文本,寻找指向其他文件的@import语句。如果我们找到@import语句,我们希望找到它们指向的文件,然后通过添加与代表第一个文件的核心数据实体的关系来将该文件“链接”到该文件。由于所有这些都可能在大文件上花费一些时间,因此我们将使用GCD在主线程之外完成。-(void)establishImp

objective-c - performSelectorOnMainThread : and dispatch_async() on main queue? 有什么区别

我在修改线程内的View时遇到问题。我尝试添加一个subview,但显示需要大约6秒或更长时间。我终于让它工作了,但我不知Prop体如何。所以我想知道它为什么起作用以及以下方法之间有什么区别:这有效-立即添加了View:dispatch_async(dispatch_get_main_queue(),^{//someUImethodsej[viewaddSubview:otherView];}这需要大约6秒或更长时间才能显示:[viewControllerperformSelectorOnMainThread:@selector(methodThatAddsSubview:)withO

objective-c - 为什么我们不能在当前队列上使用 dispatch_sync?

我遇到了一个场景,我有一个委托(delegate)回调,它可能发生在主线程或另一个线程上,直到运行时我才知道是哪个(使用StoreKit.framework)。我还有需要在回调中更新的UI代码,这需要在函数执行之前发生,所以我最初的想法是有一个这样的函数:-(void)someDelegateCallback:(id)sender{dispatch_sync(dispatch_get_main_queue(),^{//uiupdatecodehere});//codeherethatdependsupontheUIgettingupdated}当它在后台线程上执行时,效果很好。但是,当

javascript - event.preventDefault() 与返回 false

当我想在某个事件被触发后阻止其他事件处理程序执行时,我可以使用两种技术之一。我将在示例中使用jQuery,但这也适用于纯JS:1。event.preventDefault()$('a').click(function(e){//customhandlingheree.preventDefault();});2。returnfalse$('a').click(function(){//customhandlingherereturnfalse;});这两种停止事件传播的方法有什么显着区别吗?对我来说,returnfalse;比执行方法更简单、更短并且可能更不容易出错。使用该方法,您必须记

html - IE的css 'pointer-events'属性替代

我有一个下拉导航菜单,其中某些标题在单击时不应导航到其他页面(这些标题在单击时会打开下拉菜单),而其他标题应导航(这些没有下拉菜单并直接导航)。但是,这两种类型都定义了href为了解决这个问题,我为前一种标题添加了以下csspointer-events:none;它工作正常。但由于IE不支持此属性,我正在寻找一些解决方法。烦人的是我没有完全更改HTML和JavaScript代码的访问权限和权限。有什么想法吗? 最佳答案 Pointer-events是Mozillahack,它已在Webkit浏览器中实现,您不能指望再过一百万年在IE

ruby-on-rails - Rails 正在向后路由我的 calendar_event_path 吗?

Rails给我的URL的ID顺序错误。它将父ID传递给子代,将子ID传递给父代。在我的routes.rb中有resources:calendarsdoresources:eventsend哪个rakeroutes告诉我正在设置好的路线,例如calendar_eventGET/calendars/:calendar_id/events/:id(.:format){:controller=>"events",:action=>"show"}所以当我从我的部分View中请求该路线的路径时,它给了我一个id颠倒的url...http://localhost:3000/calendars//ev

Ruby Event Machine 停止或终止延迟操作

我想知道是否可以停止执行已推迟的操作。require'rubygems'require'em-websocket'EM.rundoEM::WebSocket.start(:host=>'0.0.0.0',:port=>8080)do|ws|ws.onmessagedo|msg|op=procdosleep5#ThreadsafeIOherethatissafelykilledtrueendcallback=procdo|result|puts"Done!"endEM.defer(op,callback)endendend这是一个示例网络套接字服务器。有时,当我收到一条消息时,我想做一些

ruby-on-rails - `dispatch_request' : 在 Net::SFTP.upload 期间没有这样的请求

我正在使用Net::SFTP将文件上传到服务器。这是代码:uri=URI.parse('sftp://host.org')io=StringIO.new(csv_string)timeout120doNet::SFTP.start(uri.host,ENV['SFTP_USER'],:password=>ENV['SFTP_PASS'],:port=>22)do|sftp|sftp.upload(io,"/ftpguest/Medstro/"+file_name)endend当我运行代码时,它成功连接到主机并上传了一个具有正确文件名的零字节文件。然后它抛出这个异常:lib/ruby/g