草庐IT

objective-c - 在主线程上执行带有多个参数的方法的最简单方法是什么?

这个methon真的很酷:-(void)performSelectorOnMainThread:(SEL)aSelectorwithObject:(id)argwaitUntilDone:(BOOL)wait;但是我需要一些像它这样简单的东西来在主线程中执行带有多个参数的方法,例如:-(void)methodWithFirstObject:secondObject:最简单的方法是什么? 最佳答案 使用NSDictionary对象作为参数。NSDictionary*dict=[NSDictionarydictionaryWithObj

ios - 是在主线程中调用 AVAssetImageGenerator 完成处理程序吗?

我正在尝试从视频中获取一组图像。它运行良好,但我怀疑完成处理程序是在哪个线程中调用的。我在新操作中调用了此方法(generateCGImagesAsynchronouslyForTimes:),并在完成处理程序中更新了UI。用户界面得到更新。但通常UI更新不会发生在辅助线程中?我怀疑是在当前调用线程还是主线程中调用了完成处理程序?我的代码是:__blockunsignedinti=0;AVAssetImageGeneratorCompletionHandlerhandler=^(CMTimerequestedTime,CGImageRefim,CMTimeactualTime,AVAs

objective-c - 为什么UI绘制在主线程上?

为什么所有UIKit绘图或AppKit绘图都在主线程上完成? 最佳答案 这是在单个线程上完成的所有GUI绘图的主要模式,访问屏幕添加元素和绘图不是多线程过程想象一下您有10个线程的情况,每个线程都尝试在屏幕上绘制和/或移动元素,这会产生不确定的错误和问题,这些错误和问题将很难处理和/或查找也可以在这里阅读更多WhyaremostUIframeworkssinglethreaded? 关于objective-c-为什么UI绘制在主线程上?,我们在StackOverflow上找到一个类似的问

c# - 在主线程上执行 Task.Run

我正在为iOS应用程序使用monotouch/Xamarin。Task.Run的文档状态:QueuesthespecifiedworktorunontheThreadPoolandreturnsataskhandleforthatwork.这实质上表明它可以在任何线程ThreadPool上运行。我想做这样的事情:Task.Run(async()=>awaitPerformTask());但让它在主线程上运行。通常我会用BeginInvokeOnMainThread来写它如下:BeginInvokeOnMainThread(async()=>awaitPerformTask());但我在

ios - 我们需要在主线程或主队列中更新 UI 吗?

我读了很多文章,其中指出我们需要在主线程中更新UI,但是每当我更新UI时,代码总是如此。DispatchQueue.main作为返回给我队列而不是线程。我将如何访问线程或两者是否相同? 最佳答案 想象一个火车站,其中火车的编号与其出发的站台编号相同。因此,如果您想要搭乘#1列车,请站在#1站台上。不站在站台上就不能上车。其他想要上车的人,也都站在月台上等待上车的机会。火车就是线程。平台就是队列。想上主线程就上主队列。 关于ios-我们需要在主线程或主队列中更新UI吗?,我们在StackO

ios - 当应用程序进入前台时 Webthread 锁定主线程

我正在使用UIWebView在我的iOS应用程序中嵌入YouTubeHTML播放器,有时当应用程序从后台进入前台(并且正在播放视频)时,应用程序刚刚卡住,我遇到了0x000000008badf00d崩溃。OSVersion:iOS7.1.1(11D201)ReportVersion:104ExceptionType:00000020ExceptionCodes:0x000000008badf00dHighlightedThread:0ApplicationSpecificInformation:com.myapp.myappfailedtoresumeintimeElapsedtota

iOS AFNetworking 阻塞主线程

我最近刚切换到AFNetworking来处理我应用程序中的所有网络。但是,它现在似乎正在阻塞主线程,因此我的MBProgressHUD在操作完成之前不会旋转,而我的pullToRefreshView在操作完成之前也不会设置动画。我该如何解决这个问题?-(void)pullToRefreshViewShouldRefresh:(PullToRefreshView*)view;{//CalltherefreshDatamethodtoupdatethetable[dataControllerrefreshData];}-(void)refreshData{NSURLRequest*requ

ios - 滚动 UIScrollView - 阻塞主线程

我在UITableView滚动时遇到奇怪的问题,我无法调用任何事件(按下按钮、更改布局颜色)。有趣的是,当我触摸UISeachBar时,键盘会立即出现。我意识到主线程已被阻塞,但我想知道是否有任何解决方案可以解决此问题。 最佳答案 根据您的问题的简短描述,我想这是因为当您滚动tableView运行循环时,从NSDefaultRunLoopMode更改为NSEventTrackingRunLoopMode(参见Runloops)要在滚动时更改您的UI,解决方案似乎是在NSRunLoopCommonModes上执行您的UI更新,其中包括

ios - 在主线程上分派(dispatch) NSNotification 或在主线程上传递通知哪个更好

我知道可能没有正确答案,但我很好奇人们对这个问题的看法,或者以下方法是否有利弊。第一个示例在主线程上分派(dispatch)通知,第二个示例在主线程中处理通知。如果您要从这两种方法中选择一种,选择哪一种,为什么?dispatch_async(dispatch_get_main_queue(),^{[[NSNotificationCenterdefaultCenter]postNotificationName:@"notificationName"object:nil];});-(void)handleNotification:(NSNotification*)notification{

ios - Unity3D WWW 在 iOS 的主线程上调用

在我们制作的应用程序中,我们希望在应用程序挂起时尝试​​远程用户保存数据。在Unity的编辑器和Android上,这很简单WWWwww=newWWW(_URL);while(!www.isDone){Thread.Sleep(100);}Debug.Log(www.text);(完整样本:https://github.com/SixMinute/iOSWWWGet)但是在iOS上,www.isDone在我们阻塞时永远不会计算为真,所以整个事情就挂起。这是一个错误,还是设计使然?然后如果它是设计的,那么正确的方法是什么,因为如果我们把它放在StartCoroutine后面,它就不会正确地