         )
     }()
 
-    private let delegateQueue: OperationQueue
+    private let delegateQueue: OperationQueue = .main
 
     /// Value type of Dictionary is `Any` because `WKURLSchemeTask` is only available in iOS 11.
     private var taskMap = [URLSessionDataTask: Any]()
 
     public init(name: String) {
         self.name = name
-
-        delegateQueue = OperationQueue()
-        delegateQueue.maxConcurrentOperationCount = 1
-        delegateQueue.name = name
-        delegateQueue.qualityOfService = .utility
 
         super.init()
     }

    func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {

        if #available(iOS 11.0, *) {
            DispatchQueue.main.async {
                if let schemeTask = self.taskMap[dataTask] as? WKURLSchemeTask {
                    S1LogDebug("Task Receive Response \(schemeTask.request) \(dataTask.state == .running)")
                    schemeTask.didReceive(response)
                }
            }
        }



    func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
        if #available(iOS 11.0, *) {
            if let schemeTask = self.taskMap[task as! URLSessionDataTask] as? WKURLSchemeTask {
                if let error = error {
                    S1LogWarn("Task Fail \(schemeTask.request) \(error)")
                    schemeTask.didFailWithError(error)
                } else {
                    S1LogDebug("Task Finish \(schemeTask.request)")
                    schemeTask.didFinish()
                }

                self.taskMap.removeValue(forKey: task as! URLSessionDataTask)
            }
        }
    }
