草庐IT

非阻塞

全部标签

android - RenderScript 阻塞函数调用

我是RenderScript的新手,对来自Java层的调用的阻塞/非阻塞性质仍然不太了解。一般的问题是:哪些情况会阻止代码并允许RenderScript完成。特别是:在Java中,我使用forEach_kernel()调用了一个内核,这并没有阻塞-我不得不添加一个额外的Allocation.copyTo()以便我可以使用结果。还有别的办法吗?我在某处读到,如果有2个内核,那么调用第二个内核将阻塞,直到第一个内核完成。什么条件会导致这种情况-也许只有在处理相同的分配时才会这样?可调用函数是否会阻塞a)彼此b)内核?特别是,我有一个自定义的初始化程序可调用函数,我需要准备一些数据供内核稍后

android - 如何在 Android 上进行非阻塞事件处理?

这个问题是关于Android上的事件处理。它不特定于c++。我需要处理UI/OS事件,在处理完所有事件后不阻塞。原因是我正在移植的应用程序非常大,不能轻易重写以在工作线程上处理它自己的东西。相反,应用程序引擎要求在冗长的操作期间处理UI/OS事件,否则会阻塞。我发现ALooper_pollAll(...)不会为我做这个。例如,如果我在我的Activity中创建一个对话框并开始一个长时间的操作,ALooper_pollAll()不会让我的对话框出现-它只会在我返回主循环时显示(我在onNativeWindowCreated中测试过)。我发现几乎可行的唯一解决方案是通过JNI调用以下代码在

c# - 如何创建一个在后台运行的计时器而不用 Xamarin 阻塞 UI 线程?

我想运行类似于以下代码的代码块。该代码的目的是在不阻塞UI线程的情况下以一秒为周期发出HTTP请求。privatevoidGetCodeFromTheServer(){WebClientclient=newWebClient();stringcode=client.DownloadString(newUri(@"http://example.com/code"));Toast.MakeText(this,"Code:"+code,ToastLength.Long).Show();} 最佳答案 如果您需要每隔1秒执行一次操作,您可以使

Android蓝牙socket非阻塞通信教程

我正在寻找Android上的蓝牙示例代码来进行非阻塞套接字通信。我找到了几个示例,例如BluetoothChat或BluetoothSocket.java,但没有一个是非阻塞套接字通信。ps非阻塞是否自动意味着必须是异步的?我认为实际上不是-它不一样,我假设我可以在超时的情况下进行同步套接字通信。这就是我正在寻找的例子......非常感谢 最佳答案 看起来答案几乎是你做不到的然而,通过一些线程魔法,您可以让您的系统按照您想要的方式工作BluetoothSocketListenerbsl=newBluetoothSocketListe

c# - 在 C# for Unity 中非阻塞加载和复制大型 Texture2D

我正在为Android构建一个Unity应用程序,它处理动态加载大量大纹理(所有图像的大小都超过6MB,如png)。这些纹理可以来自AmazonS3服务器,在这种情况下它们作为流到达,也可以来自用户的设备本身。在这两种情况下,我都能够毫无问题地异步获取原始数据或纹理。在第一个中,我查询服务器并获得数据流回调,在第二个中,我使用WWW类通过“file://”协议(protocol)获取纹理。当我想将此数据复制到Texture2D到我可以使用的某个地方时,例如复制到Texture2D私有(private)成员上,问题就会发生。对于流,我将其转换为byte[]并尝试调用LoadImage()

java - Android,Volley Request,响应阻塞主线程

使用Volley处理大型响应时发生了一些不好的事情:Stringurl=AppHelper.DOMAIN+"/service/pages/profile_update.json";this.infoTextView.setText(getString(R.string.profile_info_updating));finalStringRequeststringRequest=newStringRequest(Request.Method.POST,url,newResponse.Listener(){@OverridepublicvoidonResponse(Stringrespo

java - 强制停止阻塞读取 AsyncTask

我的应用程序中有一个AsyncTask:publicclassmyActivityextendsActivity{privatestaticSocketmySocket;privatestaticInputStreammyInputstream;privateAsyncTasktask;privatebooleanconnected=false;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){...task=newUpdateTask().execute();...}privateclassmyTaskextendsAs

Android RxJava,非阻塞?

我的理解是rxjava-android在单独的线程上执行操作(当提供正确的调度程序时),从而导致非阻塞操作,但是快速而肮脏的测试似乎证明这是不正确的。我使用了以下代码fragment,在这两种情况下,UI都被阻止了......fragment1Observableobservable=Observable.create(newObservable.OnSubscribe(){@Overridepublicvoidcall(Subscribersubscriber){inti=0;while(i==0){}subscriber.onCompleted();}});observable.s

android - bindService() 可以阻塞吗?

我有一个使用远程服务的Android应用程序,我使用异步的bindService()绑定(bind)到它。在绑定(bind)服务之前应用程序是无用的,所以我想简单地等到绑定(bind)完成后再启动任何Activity。有没有办法在调用onCreate()或onResume()之前绑定(bind)服务?我认为可能有一种方法可以在Application中进行绑定(bind)。有什么想法吗?编辑:如果在onCreate()中,我会这样做。bindService(service,mWebServiceConnection,BIND_AUTO_CREATE);synchronized(mLock

Android线程问题,为什么当我使用工作线程时ui仍然阻塞?

packagecom.commonsware.android.threads;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.ProgressBar;importandroid.widget.TextView;importandroid.widget.Toast;pu