Maison > Article > développement back-end > NSInternalInconsistencyException intermittente lors de l'utilisation de gocv sur macOS
J'ai du code utilisant gocv (fournit des liaisons de langage Go pour opencv). Il dessine simplement quelques rectangles sur l'image et affiche le résultat.
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)
J'obtiens cette erreur :
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
Je suis vraiment confus car cette erreur ne se produit pas à chaque fois
Je n'ai pas utilisé cette bibliothèque mais il semble que ce soit un problème connu - et, puisque vous l'avez mentionné, cela n'arrive que Parfois, il semble que l'erreur dépende du contexte du thread. La réponse ici (de l'auteur de la bibliothèque) pointe vers https://github.com/golang/go/wiki/lockosthread, donc votre package principal devrait implémenter quelque chose de similaire
func init() { runtime.LockOSThread() }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!