जब भी मैं WriteableBitmap
का कोई उदाहरण बनाता हूं तो मुझे मेमोरी लीक मिल रही है। मैंने स्टैक ओवरफ्लो और अन्य मंचों पर कई सुझावों का प्रयास किया है, लेकिन कुछ भी काम नहीं कर रहा है।विंडोज फोन में लिखने योग्य बिटमैप मेमोरी लीक 8
- एक
WriteableBitmap
बनाने के लिएPhotoResult
वस्तु सेPhotoChooserTask
- उपयोग
Stream
के साथ एक छवि का चयन करें: अपने परीक्षण एप्लिकेशन के बुनियादी प्रवाह यह है।
यही है। चर को कम करना और GC.Collect()
पर कॉल करना केवल समस्या का हिस्सा हल करता है। यह एप को दुर्घटनाग्रस्त होने तक स्मृति आवंटित करने से रोकता है, लेकिन ऑब्जेक्ट्स गुंजाइश से बाहर हो गया है, फिर भी जब तक मैं एक नई छवि का चयन नहीं करता तब तक उनके लिए आवंटित स्मृति होती है। मैं इसे एक्सएएमएल ऐप के साथ डिफ़ॉल्ट विंडोज फोन डायरेक्ट 3 डी के साथ पुन: पेश कर सकता हूं। डिफ़ॉल्ट परियोजना के लिए केवल संशोधनों निम्नलिखित हैं:
MainPage.xaml.cs
public MainPage() {
InitializeComponent();
_photoChooserTask = new PhotoChooserTask();
_photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTaskComplete);
}
private void ApplicationBarIconButton_Click(object sender, EventArgs e) {
_photoChooserTask.Show();
}
private void photoChooserTaskComplete(object sender, PhotoResult e) {
if (e.TaskResult == TaskResult.OK) {
BitmapImage image = new BitmapImage();
image.SetSource(e.ChosenPhoto);
WriteableBitmap wbm = new WriteableBitmap(image);
image.UriSource = null;
image = null;
wbm = null;
GC.Collect();
}
}
MainPage.xaml
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Default" Opacity="0.5" >
<shell:ApplicationBar.Buttons>
<shell:ApplicationBarIconButton IconUri="/junkUrl.png" Text="albums" Click="ApplicationBarIconButton_Click" />
</shell:ApplicationBar.Buttons>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
हाय, मुझे इस समस्या का सामना करना पड़ा है, अभी तक कोई समाधान है? –