在多线程java程序中,如果线程对象T已经实例化,然后在线程启动之前调用T.join()会发生什么?假设某个其他线程可以在T实例化之后的任何时间调用T.start(),在另一个线程调用T.join()之前或之后.
我问,因为我认为我有一个问题,在T.start()之前调用T.join(),调用T.join()的线程挂起.
是的,我知道我有一些设计问题,如果修复,可能会使这个问题无法解决.但是,我想知道join()行为的细节,因为Java API文档唯一说的是"等待这个线程死掉".
我试图显示一些数据的非常大的图形表示.我正在使用位图来持久存储图像,并e.Graphics.DrawImage(myBitmap, new Point(0,0))在我的表单上的PictureBox控件的onPaint中使用.我注意到(并在其他网站上提到过)如果我的图像的高度或宽度大于2 ^ 15,我会得到一个Parameter not Valid例外,但我没有找到任何关于此限制的官方文档.
这个2 ^ 15图像大小限制是一个明确的官方部分Graphics.DrawImage吗?是否有任何简单的解决方法可以将整个图像渲染到表单上?
(是的,pictureBox被设置为与图像相同的大小,或者更大.但问题是,我应该只使用表单的onPaint而不是图片框?)
我有一个有两个HashSet<String>集合作为私有成员的类.我的代码中的其他类希望能够迭代这些HashSets并读取它们的内容.我不想写一个标准的getter,因为另一个类仍然可以做类似的事情myClass.getHashSet().Clear(); 是否有任何其他方式将我的HashSets的元素暴露给迭代而不暴露对HashSet本身的引用?我希望能够以与for-each循环兼容的方式执行此操作.