Ensure UIView.layer is accessed on main thread.

BUG=webrtc:7829

Review-Url: https://codereview.webrtc.org/3002583002
Cr-Commit-Position: refs/heads/master@{#19345}
diff --git a/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m b/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
index 5a60ba3..8af3384 100644
--- a/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
+++ b/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
@@ -27,11 +27,14 @@
   if (_captureSession == captureSession) {
     return;
   }
-  _captureSession = captureSession;
-  AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
-  [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
+  [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeMain
                                block:^{
-    previewLayer.session = captureSession;
+    _captureSession = captureSession;
+    AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
+    [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
+                                 block:^{
+      previewLayer.session = captureSession;
+    }];
   }];
 }