DispatchQueue+Extension.swift 715 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // DispatchQueue+Extension.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/13.
  6. //
  7. import Foundation
  8. extension DispatchQueue {
  9. func asyncIfNotGlobal(block: @escaping () -> Void) {
  10. if self != .global() {
  11. async {
  12. block()
  13. }
  14. } else {
  15. block()
  16. }
  17. }
  18. func asyncIfNotMain(block: @escaping () -> Void) {
  19. if self != .main {
  20. async {
  21. block()
  22. }
  23. } else {
  24. block()
  25. }
  26. }
  27. }
  28. func runOnMain(block: @escaping () -> Void) {
  29. if Thread.isMainThread {
  30. block()
  31. } else {
  32. DispatchQueue.main.async {
  33. block()
  34. }
  35. }
  36. }