Rumah >pembangunan bahagian belakang >Golang >NSInternalInconsistencyException berselang-seli apabila menggunakan gocv pada macOS

NSInternalInconsistencyException berselang-seli apabila menggunakan gocv pada macOS

WBOY
WBOYke hadapan
2024-02-06 11:00:071037semak imbas

在 macOS 上使用 gocv 时间歇性出现 NSInternalInconsistencyException

Kandungan soalan

Saya mempunyai kod menggunakan gocv (menyediakan pengikatan bahasa go untuk opencv). Ia hanya melukis beberapa segi empat tepat pada imej dan memaparkan hasilnya.

func main() {
resp, err := http.get("http://localhost:6060/template-match")
if err != nil {
    panic(err)
}

defer resp.body.close()
body, err := ioutil.readall(resp.body)
if err != nil {
    panic(err)
}
fmt.println(string(body))
var data response
err = json.unmarshal(body, &data)
if err != nil {
    panic(err)
}
srcimage := gocv.imread("./images/src1.jpg", gocv.imreadcolor)
for i := 0; i < len(data.data); i++ {
    gocv.rectangle(&srcimage, data.data[i], color.rgba{r: 255}, 2)
}
window := gocv.newwindow("match-result")
window.imshow(srcimage)
gocv.waitkey(0)
fmt.println(data.data, data.msg)

Saya mendapat ralat ini:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'

Saya benar-benar keliru kerana ralat ini tidak berlaku setiap kali


Jawapan betul


Saya tidak menggunakan perpustakaan ini tetapi nampaknya ia adalah isu yang diketahui - dan, kerana anda menyebutnya Ia hanya berlaku kadang-kadang, jadi ia kelihatan seperti ralat bergantung pada konteks benang. Jawapan di sana (dari pengarang perpustakaan) menunjukkan kepada https://github.com/golang/go/wiki/lockosthread, jadi pakej utama anda harus melaksanakan sesuatu yang serupa

func init() {
    runtime.LockOSThread()
}

Atas ialah kandungan terperinci NSInternalInconsistencyException berselang-seli apabila menggunakan gocv pada macOS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam