# FileBitmapTileCache with multiple MapControl instances

**URL:** <https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049>\
**Category:** WPF\
**Created:** [August 16, 2011, 9:15am UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049 "2011-08-16T09:15:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Christopher](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Christopher](https://community.thinkgeo.com/u/Christopher)\
**Post date:** [August 16, 2011, 9:15am UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/1 "2011-08-16T09:15:58Z")

</div>

Hi&nbsp;Guys,

So&nbsp;we&nbsp;have&nbsp;multiple&nbsp;instance&nbsp;of&nbsp;map&nbsp;controls&nbsp;open&nbsp;in&nbsp;our&nbsp;WPF&nbsp;app&nbsp;and&nbsp;need&nbsp;to&nbsp;delete&nbsp;tiles&nbsp;at&nbsp;various&nbsp;times&nbsp;using&nbsp;a&nbsp;FileBitmapTileCache&nbsp;(we&nbsp;are&nbsp;using&nbsp;a&nbsp;WMSTileOverlay&nbsp;in&nbsp;the&nbsp;mapcontrol&nbsp;to&nbsp;request&nbsp;tiles&nbsp;from&nbsp;a&nbsp;WMSServer).&nbsp;I&nbsp;am&nbsp;getting&nbsp;file&nbsp;access&nbsp;errors&nbsp;right&nbsp;now&nbsp;when&nbsp;i&nbsp;delete&nbsp;tiles&nbsp;for&nbsp;a&nbsp;given&nbsp;bounding&nbsp;box&nbsp;and&nbsp;I&nbsp;assume&nbsp;this&nbsp;is&nbsp;because&nbsp;i&nbsp;have&nbsp;multiple&nbsp;instances&nbsp;of&nbsp;map&nbsp;controls,&nbsp;each&nbsp;with&nbsp;a&nbsp;&nbsp;separate&nbsp;instance&nbsp;of&nbsp;a&nbsp;FileBitmapTileCache&nbsp;pointed&nbsp;at&nbsp;the&nbsp;same&nbsp;tile&nbsp;cache&nbsp;on&nbsp;disk.&nbsp;So&nbsp;it&nbsp;seems&nbsp;like&nbsp;the&nbsp;solution&nbsp;would&nbsp;be&nbsp;each&nbsp;for&nbsp;map&nbsp;control&nbsp;to&nbsp;use&nbsp;the&nbsp;same&nbsp;FileBitmapTileCache&nbsp;instance&nbsp;-&nbsp;am&nbsp;i&nbsp;on&nbsp;the&nbsp;right&nbsp;track&nbsp;in&nbsp;thinking&nbsp;this?

&nbsp;

Thanks,

Chris

---

<div class="post-metadata">

**Author:** ![Christopher](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Christopher](https://community.thinkgeo.com/u/Christopher)\
**Post date:** [August 16, 2011, 2:08pm UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/2 "2011-08-16T14:08:53Z")

</div>

Unfortunately&nbsp;this&nbsp;approach&nbsp;doesn’t&nbsp;seem&nbsp;to&nbsp;help.&nbsp;I&nbsp;am&nbsp;still&nbsp;getting&nbsp;this&nbsp;error&nbsp;-&nbsp;  
&nbsp;&nbsp;  
&nbsp;The&nbsp;process&nbsp;cannot&nbsp;access&nbsp;the&nbsp;file&nbsp;‘C:\ProgramData\Roadnet&nbsp;Technologies\Roadnet&nbsp;Transportation&nbsp;Suite\TileCache\101\DEFAULT\4505.85777284337\3260744\3246604.png’&nbsp;because&nbsp;it&nbsp;is&nbsp;being&nbsp;used&nbsp;by&nbsp;another&nbsp;process.&nbsp;  
&nbsp;&nbsp;  
&nbsp;when&nbsp;running&nbsp;this&nbsp;code&nbsp;-&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileBitmapTileCache&nbsp;fileBitmapTileCache&nbsp;=&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wmsOverlay.TileCache&nbsp;as&nbsp;FileBitmapTileCache;&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(IMappable&nbsp;mapItem&nbsp;in&nbsp;mappableItems)&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BaseShape&nbsp;shapeToClear&nbsp;=&nbsp;null;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(mapItem&nbsp;is&nbsp;IMappablePoint)&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shapeToClear&nbsp;=&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThinkGeoConversion.PointShapeFromCoordinate(&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((IMappablePoint)mapItem).Coordinate);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(mapItem&nbsp;is&nbsp;IMappablePath)&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shapeToClear&nbsp;=&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThinkGeoConversion.LineShapeFromCoordinates(&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((IMappablePath)mapItem).Coordinates);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection\<BitmapTile\>&nbsp;tiles&nbsp;=&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCache.GetTiles(shapeToClear.GetBoundingBox());&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(BitmapTile&nbsp;tile&nbsp;in&nbsp;tiles)&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCache.DeleteTile(tile);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

---

<div class="post-metadata">

**Author:** ![Klaus3](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/k/e5b9ba/32.png) [@Klaus3](https://community.thinkgeo.com/u/Klaus3)\
**Post date:** [August 16, 2011, 3:33pm UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/3 "2011-08-16T15:33:09Z")

</div>

&nbsp;Christopher,&nbsp;I&nbsp;am&nbsp;not&nbsp;suprised&nbsp;you&nbsp;are&nbsp;getting&nbsp;an&nbsp;error&nbsp;when&nbsp;attempting&nbsp;the&nbsp;second&nbsp;approach.&nbsp;&nbsp;As&nbsp;you&nbsp;have&nbsp;already&nbsp;found&nbsp;out,&nbsp;having&nbsp;multiple&nbsp;map&nbsp;instances&nbsp;share&nbsp;the&nbsp;same&nbsp;FileBitmapTileCache&nbsp;would&nbsp;cause&nbsp;file&nbsp;access&nbsp;conflicts.&nbsp;&nbsp;I&nbsp;have&nbsp;not&nbsp;yet&nbsp;tried&nbsp;this&nbsp;but&nbsp;it&nbsp;sounds&nbsp;like&nbsp;your&nbsp;first&nbsp;approach&nbsp;should&nbsp;work&nbsp;if&nbsp;each&nbsp;FileBitmapTileCache&nbsp;points&nbsp;to&nbsp;a&nbsp;seperate&nbsp;directory.&nbsp;But&nbsp;again,&nbsp;I&nbsp;see&nbsp;too&nbsp;much&nbsp;RAM&nbsp;usage&nbsp;here.

This&nbsp;is&nbsp;an&nbsp;interesting&nbsp;problem&nbsp;which&nbsp;will&nbsp;be&nbsp;tricky,&nbsp;even&nbsp;for&nbsp;ThinkGeo&nbsp;to&nbsp;solve.&nbsp;&nbsp;&nbsp;But,&nbsp;they&nbsp;have&nbsp;a&nbsp;bag&nbsp;full&nbsp;of&nbsp;tricks.

---

<div class="post-metadata">

**Author:** ![Christopher](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Christopher](https://community.thinkgeo.com/u/Christopher)\
**Post date:** [August 16, 2011, 3:45pm UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/4 "2011-08-16T15:45:01Z")

</div>

Yup&nbsp;it’s&nbsp;too&nbsp;bad&nbsp;though&nbsp;because&nbsp;of&nbsp;the&nbsp;memory&nbsp;and&nbsp;in&nbsp;our&nbsp;case&nbsp;it&nbsp;makes&nbsp;sense&nbsp;as&nbsp;a&nbsp;singleton.&nbsp;Digging&nbsp;around&nbsp;a&nbsp;little&nbsp;more&nbsp;this&nbsp;code&nbsp;is&nbsp;similar&nbsp;to&nbsp;what&nbsp;Howard&nbsp;had&nbsp;recommended&nbsp;in&nbsp;the&nbsp;past&nbsp;and&nbsp;i’m&nbsp;not&nbsp;getting&nbsp;the&nbsp;file&nbsp;access&nbsp;error&nbsp;but&nbsp;it&nbsp;still&nbsp;doesn’t&nbsp;seem&nbsp;to&nbsp;be&nbsp;deleting&nbsp;the&nbsp;tiles.&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Get&nbsp;cells&nbsp;in&nbsp;the&nbsp;specified&nbsp;extent.&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection\<TileMatrixCell\>&nbsp;intersectingCells&nbsp;=&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCache.TileMatrix.GetIntersectingCells(&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shapeToClear.GetBoundingBox());&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Create&nbsp;a&nbsp;tile&nbsp;cache&nbsp;object&nbsp;with&nbsp;the&nbsp;cache&nbsp;directory&nbsp;and&nbsp;cache&nbsp;id.&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileBitmapTileCache&nbsp;fileBitmapTileCacheWDeleteAccess&nbsp;=&nbsp;new&nbsp;FileBitmapTileCache(&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCache.CacheDirectory,&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCache.CacheId);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCacheWDeleteAccess.TileAccessMode&nbsp;=&nbsp;TileAccessMode.ReadAddDelete;&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(ZoomLevel&nbsp;zoomLevel&nbsp;in&nbsp;Map.ZoomLevelSet.GetZoomLevels())&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;scale&nbsp;=&nbsp;zoomLevel.Scale;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCacheWDeleteAccess.TileMatrix.Scale&nbsp;=&nbsp;scale;&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(TileMatrixCell&nbsp;cell&nbsp;in&nbsp;intersectingCells)&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;create&nbsp;a&nbsp;bitmap&nbsp;whoes&nbsp;size&nbsp;equals&nbsp;to&nbsp;the&nbsp;tile&nbsp;size.&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitmapTile&nbsp;tile&nbsp;=&nbsp;new&nbsp;BitmapTile(cell.BoundingBox,&nbsp;scale);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileBitmapTileCacheWDeleteAccess.DeleteTile(tile);&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;  
&nbsp;&nbsp;

---

<div class="post-metadata">

**Author:** ![Christopher](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Christopher](https://community.thinkgeo.com/u/Christopher)\
**Post date:** [August 17, 2011, 8:50am UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/5 "2011-08-17T08:50:18Z")

</div>

Actually,&nbsp;although&nbsp;it&nbsp;may&nbsp;be&nbsp;I&nbsp;just&nbsp;haven’t&nbsp;tested&nbsp;it&nbsp;enough,&nbsp;it&nbsp;seems&nbsp;like&nbsp;using&nbsp;a&nbsp;single&nbsp;tile&nbsp;cache&nbsp;with&nbsp;multiple&nbsp;map&nbsp;control&nbsp;instances&nbsp;works&nbsp;ok&nbsp;as&nbsp;far&nbsp;as&nbsp;displaying&nbsp;the&nbsp;tiles.&nbsp;If&nbsp;there&nbsp;was&nbsp;just&nbsp;a&nbsp;way&nbsp;to&nbsp;get&nbsp;the&nbsp;cache&nbsp;to&nbsp;momentarily&nbsp;release&nbsp;it’s&nbsp;locks&nbsp;on&nbsp;the&nbsp;files&nbsp;so&nbsp;that&nbsp;they&nbsp;could&nbsp;be&nbsp;deleted&nbsp;as&nbsp;needed&nbsp;and&nbsp;then&nbsp;updated&nbsp;with&nbsp;a&nbsp;Map.Refresh()&nbsp;call&nbsp;it&nbsp;seems&nbsp;like&nbsp;it&nbsp;could&nbsp;be&nbsp;made&nbsp;to&nbsp;work.&nbsp;  
&nbsp;&nbsp;  
&nbsp;For&nbsp;a&nbsp;little&nbsp;background:&nbsp;We&nbsp;are&nbsp;using&nbsp;a&nbsp;WMS&nbsp;Server&nbsp;but&nbsp;have&nbsp;map&nbsp;editing&nbsp;built&nbsp;in&nbsp;to&nbsp;our&nbsp;system&nbsp;so&nbsp;that&nbsp;the&nbsp;rendering&nbsp;engine&nbsp;on&nbsp;the&nbsp;server&nbsp;will&nbsp;actually&nbsp;pick&nbsp;up&nbsp;user&nbsp;specific&nbsp;map&nbsp;edits&nbsp;-&nbsp;but&nbsp;in&nbsp;order&nbsp;for&nbsp;this&nbsp;to&nbsp;work&nbsp;we&nbsp;need&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;clear&nbsp;out&nbsp;and&nbsp;refresh&nbsp;the&nbsp;tiles&nbsp;covering&nbsp;those&nbsp;edits&nbsp;on&nbsp;the&nbsp;client.

---

<div class="post-metadata">

**Author:** ![Klaus3](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/k/e5b9ba/32.png) [@Klaus3](https://community.thinkgeo.com/u/Klaus3)\
**Post date:** [August 17, 2011, 9:42am UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/6 "2011-08-17T09:42:17Z")

</div>

Good&nbsp;investigation&nbsp;and&nbsp;thanks&nbsp;for&nbsp;sharing.&nbsp;&nbsp;Sounds&nbsp;like&nbsp;there&nbsp;is&nbsp;a&nbsp;thread&nbsp;resource&nbsp;contention&nbsp;issue&nbsp;in&nbsp;multiple&nbsp;tile&nbsp;mode.

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [August 19, 2011, 2:09pm UTC](https://community.thinkgeo.com/t/filebitmaptilecache-with-multiple-mapcontrol-instances/3049/7 "2011-08-19T14:09:01Z")

</div>

Christopher,&nbsp;  
  
  
  
Thanks&nbsp;for&nbsp;your&nbsp;investigation&nbsp;about&nbsp;that.&nbsp;I&nbsp;think&nbsp;we&nbsp;don't&nbsp;have&nbsp;a&nbsp;good&nbsp;function&nbsp;to&nbsp;force&nbsp;delete&nbsp;locked&nbsp;image&nbsp;file,&nbsp;you&nbsp;can&nbsp;create&nbsp;try&nbsp;to&nbsp;delete&nbsp;it&nbsp;after&nbsp;other&nbsp;process&nbsp;release&nbsp;it.&nbsp;I&nbsp;think&nbsp;a&nbsp;background&nbsp;service&nbsp;could&nbsp;help&nbsp;you&nbsp;asynchronous&nbsp;delete.  
  
&nbsp;&nbsp;  
  
Regards,&nbsp;  
  
  
  
Don
