BTW for anyone following this thread, here's a simple (and I assume fast)
way to determine if you're on the main thread:

NSThread.Current.*IsMainThread*

*
*

This seems to report accurately whether it's on the main thread or not.

-- 
*Phil *Cockfield




On Wed, Aug 8, 2012 at 8:09 AM, Phil Cockfield <[email protected]> wrote:

> Awesome - thanks *Rolf*.
>
>
>
>
> On Tue, Aug 7, 2012 at 10:56 PM, Rolf Bjarne Kvinge <[email protected]>wrote:
>
>> Hi,
>>
>> There are likely more efficient ways to this.
>>
>> One way would be to have a [ThreadStatic] variable which you set to true
>> in your Main method. That way it'll only be true for the main thread.
>>
>> The only way to really tell what is faster though is to actually measure
>> the difference (and do you actually know that this code is called a lot in
>> your app? If not, it won't be a problem. Have in mind that anything
>> UI-related will likely drown this piece of code completely).
>>
>> Best regards,
>> Rolf
>>
>> On Tue, Aug 7, 2012 at 12:43 PM, Phil Cockfield <[email protected]>wrote:
>>
>>> I've got some same code which is designed to make sure an Action is
>>> invoked on the UI thread.
>>> Here it is here:
>>>
>>> https://gist.github.com/3284433
>>>
>>> It uses this to determine if it's running on the UI thread.  Is code the
>>> most efficient way to do this?  It seems a bit baroque to be marshalling
>>> out over a *bool_objc_msgSend *type method.
>>>
>>>
>>>       private static bool IsMainThread()
>>>
>>>     {
>>>
>>>       return Messaging.bool_objc_msgSend(GetClassHandle("NSThread"), 
>>> newSelector(
>>> "isMainThread").Handle);
>>>
>>>     }
>>>
>>>
>>> Thanks!
>>>
>>> --
>>> *Phil *Cockfield
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> MonoTouch mailing list
>>> [email protected]
>>> http://lists.ximian.com/mailman/listinfo/monotouch
>>>
>>>
>>
>
>
> --
> *Phil *Cockfield
>
>
>
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to