.NET- এ মেমরি থেকে আরকোবজেক্টগুলি প্রকাশের নিয়ম কী?


14

আমার কি প্রতিটি অবজেক্ট প্রকাশ করা দরকার? কিছু মেমরি পরিচালনা আমার জন্য পরিচালিত হয়?

উত্তর:


18

এর মধ্যে উল্লেখযোগ্য হল, সবসময় স্পষ্টভাবে মুক্তি এক্সিকিউটেবল-এর পাথ যখন আপনি তাদের সঙ্গে সম্পন্ন করা হয়। আমিও কিছু শুমার বস্তু যা ডাটাবেসের এক্সেস পরোক্ষভাবে, উদাহরণস্বরূপ মুক্তি IEnumRelationship আপনি থেকে পাওয়া IRelationshipClass.GetRelationshipsForObject

এছাড়াও, যখন আপনি প্রচুর COM দৃষ্টান্ত তৈরি করেন যা স্বল্পকালীন (বিশেষত টাইট লুপগুলিতে) থাকে তখন সেগুলি স্পষ্টভাবে প্রকাশ করাও ভাল ধারণা।

এমন পরিস্থিতিতেও রয়েছে যখন পৃথক বৈশিষ্ট্য (সারি) রেফারেন্স প্রকাশ করার পরামর্শ দেওয়া হয়। উদাহরণস্বরূপ, আপনি যদি কোনও নতুন জিওডাটাবেস সংস্করণ তৈরি করেন, ডেটা সম্পাদনা করুন, পুনর্মিলন করুন এবং পোস্ট করুন, তবে সংস্করণটি মুছে ফেলার প্রচেষ্টা ব্যর্থ হতে পারে কারণ সেখানে অপ্রকাশিত সারি থাকতে পারে, যার ফলে আপনি মুছার চেষ্টা করছেন এমন সংস্করণ (ওয়ার্কস্পেস) এর রেফারেন্স রাখে। বেশিরভাগ ক্ষেত্রেই, যদিও এই জাতীয় পরিস্থিতিগুলি বিরল এবং আপনার প্রতিদিনের আরকঅবজেক্টস বিকাশগুলির জন্য তাদের অ্যাকাউন্ট করার প্রয়োজন নেই। এটি কেবল কোডটিকে বহিরাগত পরিষ্কারের সাথে বিশৃঙ্খল করে তুলবে, এটি কম রক্ষণাবেক্ষণযোগ্য করে তুলবে।

.NET মোড়কে কখন প্রকাশ করবেন না তা বলাও গুরুত্বপূর্ণ - আরকওবজেক্টগুলির আরসিডাব্লু স্পষ্টভাবে প্রকাশ করবেন না যা অন্য কোনও পরিচালিত কোড দ্বারা ব্যবহৃত হতে পারে। এর একটি উদাহরণ - আর্কম্যাপে থাকাকালীন IMap প্রকাশ করবেন না। সাধারণভাবে, আপনি তৈরি করেননি এমন আরকঅবজেক্টগুলি প্রকাশের চেষ্টা করবেন না।


6

বেশিরভাগ অংশে। নেট জঞ্জাল সংগ্রহ ভাল কাজ করে। আর্কওবজেক্টসে এমন কিছু কেস রয়েছে যেগুলি ডেসটেক্টরগুলিতে গুরুত্বপূর্ণ কাজ করে এবং। নেট র‌্যাপারগুলির অ-নিরপেক্ষ প্রকৃতির কারণে সমস্যা দেখা দিতে পারে। এই সহায়তার বিষয় মুক্তির বিষয়ে এবং কীভাবে পরিচালনা করতে হবে তা উদ্বিগ্ন হওয়ার জন্য প্রাথমিক কেসগুলি কভার করে।


2
একই লিঙ্কটি 10: help.arcgis.com/en/sdk/10.0/arcob
پروژې_

2

সর্বদা ধ্বংস:

  • ICursors
  • IEnums

অন্য কোথাও ব্যবহৃত হচ্ছে এমন কিছু যাতে না ঘটে সে সম্পর্কে সতর্ক থাকুন।

আজ আমি ইএসআরআই ওয়েবসাইটে একটি আকর্ষণীয় আলোচনা পড়েছি যেখানে কર્ક অংশ নিয়েছিল। অন্যান্য খুব আকর্ষণীয় মতামত ছিল, যেমন রিলিজকমঅজেক্ট পদ্ধতি ব্যবহার এবং ফাইনাল রিলিজ কমকমেক্ট (বা এর মতো কিছু)। দুঃখিত, এই মুহূর্তে আমার কাছে লিঙ্কটি নেই।

কেউ কেউ আইআরওগুলি ছেড়ে দেওয়ার পরামর্শও দিয়েছিলেন, তবে অনেকে সম্মত হন যে জিসি তাদের সরাসরি পরিচালনা করতে দেওয়া সহজ easier

আমি কখনও কোনও আইজিওট্রি প্রকাশ করি না। কেউ চেষ্টা করেছে?


1

আমি ESRI.ArcGIS.ADF.ComReleaser ব্যবহার করব। বলা হচ্ছে যে আমি ঠিক নিশ্চিত নই যে কোনটি অর্ক অবজেক্টগুলি ডিটারমিনিস্টিক রিলিজ প্যাটার্ন ব্যবহার করে তবে আমি বেশিরভাগ ক্ষেত্রেই এটি IServerContext অবজেক্টের সাথে সংযুক্ত করি যেহেতু এটি সবচেয়ে গুরুত্বপূর্ণ।

using (ComReleaser comReleaser = new ComReleaser())
{

}

২০১১ সালের এসরি বিকাশকারী শীর্ষ সম্মেলনে আমি এমন কিছু তথ্য পেতে সক্ষম হয়েছি here

আমি যে বড় তালিকাটি মনে করছিলাম তা ছিল সিঙ্গলটন অবজেক্টের জন্য (যা দুটি বিষয় নীচে সহায়তা করে)।

নেট নেট "সিওএম রেফারেন্সগুলি" বিষয়টিতে আর্কওবজেক্টগুলি ব্যবহার করার জন্য সেরা অনুশীলনগুলির লিঙ্কটি: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/ রিলিজিং_সিওএম_প্রকাশ / 10001000004tm000000/

এবং এখানে জিওডাটাবেস ব্লগের একটি পোস্ট রয়েছে যা একটি চতুর্থ আলোচনার জন্য রয়েছে যা এতে অবজেক্টগুলির একটি তালিকা রয়েছে: http://blogs.esri.com/dev/blogs/geodatedia/archive/2010/05/18/ কি_2700_s‑up‑with -comreleaser_3f00_.aspx

(অবশেষে ইউআরএলটি কাজ না করার ক্ষেত্রে একটি লিঙ্ক সহ একটি ব্লগ পোস্ট) http://blogs.esri.com/dev/blogs/geodatedia/archive/2008/12/18/ using‑the‑comreleaser‑to‑ manage যে সময়টাতে-জীবনকাল অফ এক্সিকিউটেবল-এর পাথ-ইন-.net.aspx


IServerContext এর সাথে কাজ করার সময়, আরও গুরুত্বপূর্ণ (কমরেইলারের মতো তার .NET RCW প্রকাশের চেয়ে) এর উপর রিলিজকন্টেক্সট কল করা। সর্বোত্তম উপায় হ'ল প্রযোজ্য .NET ক্লাসে আইডেস্পোজেবল (এবং চূড়ান্তকরণকারী বাস্তবায়ন সহ স্ট্যান্ডার্ড ডিসপোজ পদ্ধতি অনুসরণ করে) প্রসঙ্গে মোড়ানো
পেট্র ক্রেবস

@ পেটার হ্যাঁ রিলিজ কনটেক্সটটি বিশাল এবং এমন কিছু যা আমি উপেক্ষা করি নি তবে অন্য সবার জন্য এটি লেখার জন্য ধন্যবাদ।
স্টিভ

2
আমি বিশ্বাস করি যে কমরেইলজার 32 বিবিট অ্যাসেমব্লির অংশ যার অর্থ আপনি একটি 64 বিট প্রক্রিয়াতে (যেমন আর্কজিআইএস সার্ভার) কমরেইলজার চালাতে পারবেন না। আমি একটি এসওই লিখছিলাম এবং এতে জ্বলে উঠলাম।
বকোলিনস

সার্ভার মুক্ত করার জন্য অন্যান্য বিকল্প আছে?
ভিবিবাহোল

@ VBAHole এমন নয় যে আমি লক্ষ্য করেছি। এমনকি 10.5.1 আরকোবজেক্টে।
স্টিভ

0

আইওয়ার্কস্পেস অবজেক্টগুলি ভুলে যাবেন না। কয়েক বছর আগে ইএসআরআই দেব শীর্ষ সম্মেলনে, আমি প্রশ্নটি জিজ্ঞাসা করেছি, এবং ইএসআরআইয়ের উত্তর ছিল আইকারসার এবং আই ওয়ার্কস্পেস অবজেক্ট।


ওয়ার্কস্পেসগুলি প্রকাশের কোনও অর্থ নেই কারণ সেগুলি ওয়ার্কস্পেস ফ্যাক্টরি সিঙ্গলেট দ্বারা ক্যাশে করা হয়েছে।
প্রেস্টন

0

কোনও এসওআইতে কার্সারের মতো সার্ভার অবজেক্টের সাথে কাজ করার সময় কি বিধিগুলি আলাদা হয়? আমি কমরেইলজার ব্যবহার করার চেষ্টা করছি তবে এটি আমার এসওআই কোডের পদ্ধতির কাছে যে কোনও জায়গায় পাওয়া গেলে প্রতিবার ব্যর্থ হয়


বিদ্যমান প্রশ্নের উত্তর হিসাবে কোনও প্রশ্ন পোস্ট করবেন না। বিদ্যমান প্রশ্নের সাথে একটি লিঙ্ক সহ এটি একটি নতুন প্রশ্ন হিসাবে পোস্ট করুন।
বিয়ন্সের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.