Rumah >pembangunan bahagian belakang >Golang >NSInternalInconsistencyException berselang-seli apabila menggunakan gocv pada macOS
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
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!