µ¿½Ã¼º ¹× ÀÛ¾÷°ø°£

ÀÛ¾÷°ø°£ÀÌ µ¿½Ã¼º ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì¿¡µµ µ¿½Ã¼ºÀ» Àß ¾Ë°í ÀÖ¾î¾ß ÇÔÀ» ÀÌ¹Ì È®ÀÎÇß½À´Ï´Ù. ÀÛ¾÷°ø°£ º¯°æ ¹× ½ºÄÉÁÙ¸µ ±ÔÄ¢ »ç¿ëÀ» Àϰýó¸®Çϸé ÀÛ¾÷°ø°£À» ¼öÁ¤ ÁßÀÎ ´Ù¸¥ Ç÷¯±×ÀÎ(¹× ÇØ´ç ½º·¹µå)°ú ÀÛ¾÷°ø°£À» °øÀ¯ÇÏ´Â µ¥ µµ¿òÀÌ µË´Ï´Ù. Ç÷¯±×ÀÎÀÌ Àϰýó¸® ¹× ±ÔÄ¢(ÀÚ¿ø º¯°æ Àϰýó¸® ÂüÁ¶)À» »ç¿ë ÁßÀ̸é Ç÷§Æû µ¿½Ã¼º ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© µ¿ÀÏÇÑ ÀÛ¾÷À» ¼öÇàÇϱⰡ ½±½À´Ï´Ù.

ÀÛ¾÷°ø°£ ÀÛ¾÷

ÀÛ¾÷Àº ´Ù¸¥ ÀÛ¾÷°ú µ¿½Ã¿¡ ½ÇÇà ÁßÀÎ ºñµ¿±â ÀÛ¾÷ÀÇ ±âº» ´ÜÀ§ÀÔ´Ï´Ù. ÀÚ¿ø Ç÷¯±×ÀÎÀº WorkspaceJobÀ» ºñµ¿±â ÀÚ¿ø ¼öÁ¤À» Á¤ÀÇÇÏ´Â Æí¸®ÇÑ ¸ÞÄ¿´ÏÁòÀ¸·Î Á¤ÀÇÇÕ´Ï´Ù. IWorkspaceRunnable¿¡¼­ Á¤»óÀûÀ¸·Î Àϰý󸮵Ǵ ÄÚµå´Â ÀÛ¾÷°ø°£ ÀÛ¾÷ ÇÏÀ§ À¯ÇüÀÎ runInWorkspace ¸Þ¼Òµå¿¡ ´ë½Å ¹èÄ¡µË´Ï´Ù. ÀÛ¾÷Àº IWorkspace ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© Äڵ带 ½ÇÇàÇÏ´Â ´ë½Å ´Ù¸¥ ÀÛ¾÷°ú ¸¶Âù°¡Áö ¹æ½ÄÀ¸·Î ½ºÄÉÁٵ˴ϴÙ. ÀÛ¾÷ÀÌ ½ºÄÉÁٵDZâ Àü¿¡ ÀûÀýÇÑ ½ºÄÉÁÙ¸µ ±ÔÄ¢ÀÌ ÀÛ¾÷¿¡ Ãß°¡µÇ¾î¾ß ÇÕ´Ï´Ù.

¿¹Á¦ ÀÛ¾÷°ø°£ ½ÇÇà ÇÁ·Î±×·¥ ¹× ÀÛ¾÷À¸·Î ÀÛ¼ºÇϱâ À§ÇØ ¼öÇàÇØ¾ß ÇÒ »çÇ×À» »ìÆìº¸±â·Î ÇÕ´Ï´Ù.

IWorkspaceRunnable myRunnable =
        new IWorkspaceRunnable() {
 	        public void run(IProgressMonitor monitor) throws CoreException {
			//do the actual work in here
			doSomeWork();
			...
		}
}

ÀÛ¾÷ÀÌ WorkspaceJob ÇÏÀ§ À¯Çü¿¡ ÀûÀýÇÑ ¸Þ¼Òµå·Î À̵¿ÇÕ´Ï´Ù.

class MyWorkspaceJob extends WorkspaceJob {
	public MyWorkspaceJob() {
		super("My Workspace Job");
	}
	public IStatus runInWorkspace(IProgressMonitor monitor) {
		//do the actual work in here
		doSomeWork();
		return Status.OK_STATUS;
	}
}

½ÇÇà ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ Æ¯º°È÷ È£ÃâµÇ¾î¾ß ÇÕ´Ï´Ù.

    IWorkspace workspace = ResourcesPlugin.getWorkspace();
workspace.run(myRunnable, myProject, IWorkspace.AVOID_UPDATE, null);

ÀÛ¾÷Àº ´Ù¸¥ ÀÛ¾÷ó·³ ½ºÄÉÁٵ˴ϴÙ. Ç÷§Æû ÀÛ¾÷ °ü¸®ÀÚ´Â ¿ì¼±¼øÀ§, ´ë±â¿­ÀÇ ´Ù¸¥ ÀÛ¾÷ ¹× ½ºÄÉÁÙ¸µ ±ÔÄ¢¿¡ µû¶ó ÀÛ¾÷À» ½ÇÇàÇÕ´Ï´Ù. myProjectÀÇ µ¿½Ã ¼öÁ¤À» ¹æÁöÇÏ·Á¸é ½ºÄÉÁÙ¸µ ±ÔÄ¢À» ÀÛ¾÷¿¡ ÷ºÎÇØ¾ß ÇÕ´Ï´Ù.

MyWorkspaceJob job = new MyWorkspaceJob();
job.setRule(myProject);
   job.schedule();

ÀÌÁ¦ Á¶ÀÛÀÌ ÀÛ¾÷À¸·Î ±¸¼ºµÇ¾úÀ¸¹Ç·Î, ¸ðµç ½ºÄÉÁÙ¸µ ¸ÞÄ¿´ÏÁò(¿ì¼±¼øÀ§, Áö¿¬, À罺ÄÉÁÙ¸µ)À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø º¯°æ À̺¥Æ®´Â ÀÛ¾÷ÀÌ ½ÇÇàÀ» ¿Ï·áÇÒ ¶§±îÁö Àϰý󸮵˴ϴÙ.