当前位置: 首页>>代码示例>>C#>>正文


C# UIViewController.InvokeOnMainThread方法代码示例

本文整理汇总了C#中UIViewController.InvokeOnMainThread方法的典型用法代码示例。如果您正苦于以下问题:C# UIViewController.InvokeOnMainThread方法的具体用法?C# UIViewController.InvokeOnMainThread怎么用?C# UIViewController.InvokeOnMainThread使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UIViewController的用法示例。


在下文中一共展示了UIViewController.InvokeOnMainThread方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: LoginAccount

        public static void LoginAccount(string user, string pass, UIViewController ctrl, Action<Exception> error = null)
        {
            //Does this user exist?
            var account = Application.Accounts.Find(user);
            var exists = account != null;
            if (!exists)
                account = new Account { Username = user, Password = pass };

            ctrl.DoWork("Logging in...", () => {
                BitbucketSharp.Models.UsersModel userInfo;

                try
                {
                    var client = new BitbucketSharp.Client(user, pass) { Timeout = 30 * 1000 };
                    userInfo = client.Account.GetInfo();
                }
                catch (Exception)
                {
                    throw new Exception("Unable to login as user " + account.Username + ". Please check your credentials and try again. Remember, credentials are case sensitive!");
                }

                account.FullName = (userInfo.User.FirstName ?? string.Empty) + " " + (userInfo.User.LastName ?? string.Empty);
                account.Username = userInfo.User.Username;
                account.Password = pass;
                account.AvatarUrl = userInfo.User.Avatar;

                if (exists)
                    Application.Accounts.Update(account);
                else
                    Application.Accounts.Insert(account);

                Application.SetUser(account);
                ctrl.InvokeOnMainThread(TransitionToSlideout);

            }, (ex) => {
                Console.WriteLine(ex.Message);

                //If there is a login failure, unset the user
                Application.SetUser(null);

                //Show an alert and trigger the callback when the user dismisses it
                Utilities.ShowAlert("Unable to Authenticate", ex.Message, () => {
                    if (error != null)
                        error(ex);
                });
            });
        }
开发者ID:steffen-avemarg,项目名称:CodeBucket,代码行数:47,代码来源:Login.cs

示例2: MakeCall

        public static void MakeCall(CallEntity callEntity, UIViewController vc)
        {

            var category = callEntity.Category;
            var choice = callEntity.Choice ?? "";
            var detail = callEntity.Detail ?? "";

            var confirmAlertController = UIAlertController.Create(category + " " + choice + " " + detail, Strings.CallSendMessage, UIAlertControllerStyle.Alert);

            // When user confirms the service
            var okAction = UIAlertAction.Create(Strings.CallSend, UIAlertActionStyle.Destructive, action =>
            {
                ShowLoadingScreen(vc, Strings.SpinnerDataSending);

                new System.Threading.Thread(new System.Threading.ThreadStart(() =>
                {
                    var callEntities = DataHandler.LoadCallsFromLocalDatabase(new LocalDB());

                    vc.InvokeOnMainThread(() =>
                    {
                        if (callEntities != null && callEntities.Length > 0)
                        {
                            // Check if the call already has been made, then return;
                            if (CallHasBeenMade(callEntities, callEntity)) return;
                        }
          
                        new System.Threading.Thread(new System.Threading.ThreadStart(() =>
                        {
                            // Make the async patient call here
                            try
                            {
                                ICall patientCall = new PatientCall();
                                // Assign the callid with the returned MongoDB id
                                callEntity._id = patientCall.MakeCall(callEntity);

                                vc.InvokeOnMainThread(() =>
                                {
                                    // Call successfull, take the user to myCalls passing the viewcontroller and the requested call
                                    GoToMyCalls(vc,callEntity);

                                });
                            }
                            catch (Exception ex)
                            {
                                // Hide the loading screen
                                Console.WriteLine("ERROR making call: " + ex.Message);

                                vc.InvokeOnMainThread(() =>
                                {
                                    loadingOverlay.Hide();
                                    new UIAlertView(Strings.Error, Strings.ErrorSendingCall, null, Strings.OK, null).Show();
                                });
                            }

                        })).Start();
                        
                    });

                })).Start();

    
                new System.Threading.Thread(new System.Threading.ThreadStart(() =>
                {
                    
                })).Start();

            });

            // When user cancels the service
            var cancelAction = UIAlertAction.Create(Strings.Cancel, UIAlertActionStyle.Cancel, action =>
            {
                // Do nothing.

            });

            confirmAlertController.AddAction(okAction);
            confirmAlertController.AddAction(cancelAction);

            // Display the alert
            vc.PresentViewController(confirmAlertController, true, null);
        }
开发者ID:dsb92,项目名称:patientcare,代码行数:81,代码来源:AppDelegate.cs

示例3: BeginDownloadingImage

		public async void BeginDownloadingImage (UIViewController controller, UITableView tableView, NSIndexPath path, List<SpecialistProfileInfos> listSpecialist, SpecialistProfileInfos info, bool isCache)
		{
			// Queue the image to be downloaded. This task will execute
			// as soon as the existing ones have finished.
			UIImage data = null;
			if (info.Account.AvatarPath != null)
				data = await GetImageData (info.Account.AvatarPath, true);

			info.SpecialistDetail.ImageAvatar = getImageFrom (data);
			if (controller != null) {
				controller.InvokeOnMainThread (() => {
					TCSearchCellTemplate cell = null;

					cell = tableView.VisibleCells.Where (c => c.Tag == listSpecialist.IndexOf (info)).FirstOrDefault () as TCSearchCellTemplate;
			
					if (cell != null) {
						cell.avatar.Image = getImageFrom (data);
						cell.indicator.StopAnimating ();
						cell.indicator.Color = UIColor.Clear;
					}
				});
			}
		}
开发者ID:borain89vn,项目名称:demo2,代码行数:23,代码来源:TCAsyncImage.cs

示例4: ShowImagePicker

        private void ShowImagePicker(UIViewController viewController, UIImagePickerControllerSourceType pickerType)
        {
            imagePicker = new UIImagePickerController();

            imagePicker.SourceType = pickerType;
            // only allow photos (not videos)
            imagePicker.MediaTypes = new string[] { UTType.Image };
            if (pickerType == UIImagePickerControllerSourceType.Camera)
            {
                imagePicker.ShowsCameraControls = true;
            }

            imagePicker.FinishedPickingMedia += (s, e) =>
            {
                viewController.InvokeOnMainThread(() =>
                {
                    bool didPickAnImage = e.MediaType == ImageMediaType && e.OriginalImage != null;
                    OnFinishedPicking(didPickAnImage, e.OriginalImage);
                });
            };

            imagePicker.Canceled += (object s, EventArgs e) =>
            {
                OnFinishedPicking(false, null);
            };

            imagePicker.ModalInPopover = true;
            imagePicker.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            imagePicker.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;

            viewController.PresentViewController(imagePicker, true, null);
        }
开发者ID:ChristianJaspers,项目名称:saapp-ios,代码行数:32,代码来源:ImagePickerPresenter.cs


注:本文中的UIViewController.InvokeOnMainThread方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。